技术交流

技术交流
技术交流
  • C++11多线程编程(六)——线程池的实现
    一、为何需要线程池 那么为什么我们需要线程池技术呢?多线程编程用的好好的,干嘛还要引入线程池这个东西呢?引入一个新的技术肯定不是为了装酷,肯定是为了解决某个问题的,而服务端一般都是效率问题。 我们可以看到多线程提高了CPU的使用率和程序的工作效率,但是如果有大量的线程,就会影响性能,因为要大量的创建与销毁,因为CPU需要在它们之间切换。线程池可以想象成一个池子,它的作用就是让每一个线程结束后,并不会销毁,而是放回到线程池中成为空闲状态,等待下一个对象来使用。 ...
    2021-01-06 16:30:00
  • C++11多线程编程(五)——生产消费者模型之条件变量
    当某个线程持有这把锁的时候(就是所谓的加锁),那么这个线程是独占所有的资源,这里的资源指的是执行的权限,其他要抢夺资源的线程都不得不等待。在很多情况下,这都容易适用,但是有些情况下,却会产生一些异常情况。 在生产消费者模型当中,肯定都会用到互斥锁的机制的,当生产者往队列中放数据的瞬间,消费者是不能取数据的,那这时候可能会碰见一个问题,如果生成者因为某些原因,放数据过慢,但是消费者取数据很快,当队列中没有数据了,消费者还去取的话,就会发生异常情况。有些人可能会说...
    2021-01-06 16:29:00
  • 图像处理基础(2):自适应中值滤波器(基于OpenCV实现)
    本文主要介绍了自适应的中值滤波器,并基于OpenCV实现了该滤波器,并且将自适应的中值滤波器和常规的中值滤波器对不同概率的椒盐噪声的过滤效果进行了对比。最后,对中值滤波器的优缺点了进行了总结。 空间滤波器 一个空间滤波器包括两个部分: · 一个邻域,滤波器进行操作的像素集合,通常是一个矩形区域 · 对邻域中像素进行的操作 一个滤波器就是在选定的邻域像素上执行预先定义好的操作产生新的像素,并用新的像素替换掉原来像素形成新的图像。 通常,也可以将滤波...
    2021-01-06 15:59:29
  • 同轴光选型
    同轴光有效视野范围 工作距离WD(mm) 300 同轴光光源高度(mm) 59.5 光源工作距离LWD(mm) 50 同轴光发光面尺寸(mm) 50 光源有效视野(mm) 36.63003663 光源型号 发光面尺寸(mm) 光源高度(mm) WLFV-20 20 26.5 WLFV-30 ...
    2021-01-06 14:19:07
  • C++11多线程编程(四)——原子操作
    今天和大家说说C++多线程中的原子操作。首先为什么会有原子操作呢?这纯粹就是C++这门语言的特性所决定的,C++这门语言是为性能而生的,它对性能的追求是没有极限的,它总是想尽一切办法提高性能。互斥锁是可以实现数据的同步,但同时是以牺牲性能为代价的。口说无凭,我们做个实验就知道了。 我们将一个数加一再减一,循环一定的次数,开启20个线程来观察,这个正确的结果应该是等于0的。 首先是不加任何互斥锁同步 # include &l...
    2021-01-05 11:48:12
  • C++11多线程编程(三)——lock_guard技术
    如果熟悉C++多线程的童鞋可能有了解到实现的互斥锁的机制还有这个写法 lock_guard<mutex> guard ( mt ) ; 那么这句话是什么意思呢?为什么又要搞个这样的写法呢? 这个也是构造互斥锁的写法,就是会在lock_guard构造函数里加锁,在析构函数里解锁,之所以搞了这个写法,C++委员会的解释是防止使用mutex加锁解锁的时候,忘记解锁unlock了。 # include <iostream> ...
    2021-01-05 11:36:09
1 ··· 80 81 82 ··· 97
在线客服 双翌客服
客服电话
  • 0755-23712116
  • 13822267203