技术交流

技术交流
技术交流
  • C++11多线程编程(八)——死锁问题
    一、死锁现象 看到“死锁”二字,你是不是慌得不知所措。死锁,顾名思义就是这个锁死掉了,再也动不了了。那死锁是怎么产生的呢?当你对某个资源上锁后,却迟迟没有释放或者根本就无法释放,导致别的线程无法获得该资源的访问权限,进而程序无法运行下去,有点像是阻塞的现象。但是阻塞是一种正常现象,而死锁可以说是一种bug,必须要处理。 那么我现在就举个死锁的例子,来分析分析。 # include <iostream> # include ...
    2021-01-07 14:00:41
  • C++11多线程编程(七)——信号量的实现
    一、为何需要信号量 信号量用来干嘛的呢?搜寻答案的话,很多人都会告诉你主要用于线程同步的,意思就是线程通信的。简单来说,比如我运行了2个线程A和B,但是我希望B线程在A线程之前执行,那么我们就可以用信号量来处理。有些人可能会疑惑,那么麻烦干嘛?你不是要B线程先执行吗?那么我让A线程休眠一点时间不就可以了吗?没错,这个思路是可以的,但是如果B线程也因为某些原因(比如硬件,操作系统的原因)导致延缓执行了,这该怎么办?到底A线程该休眠多少时间合适呢?所以正确的做法就是在B...
    2021-01-07 14:00:00
  • 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
1 ··· 83 84 85 ··· 100
在线客服 双翌客服
客服电话
  • 0755-23712116
  • 13310869691