关于进程通信方式,我之前整理如上图。今天,我们主要通过实例(代码编写)来深入了解信号量。
关于信号的概念,基础知识等我在信号量(生产者和消费者模型)以及进程通信概念和进程通信方式这两篇文章都有总结,不再赘述。
我们通过了解Linux下关于信号量函数接口,以及代码编写复习,熟悉信号量。PS:代码均在Ubuntu16.04下测试。
什么是信号量
在前面,我们提过,信号量主要用于互斥或者同步机制。信号量本质上是一个计数器,只不过这个计数器的加减操作都是原子操作。我们可以把它理解成一个锁(Lock),对于系统的临界资源(每次只能有一个进程访问的资源如打印机,缓冲区等等)进行保护,说白了,就是当一个进程访问一个临界资源进行加锁,这样子别人即访问不了了,当进程访问完该资源释放该锁这样子别人才能访问从而实现了互斥机制。