1. 信号量介绍
信号量的运用环境与互斥锁一样,但是信号量比互斥锁增加灵活,互斥锁只有两个状态(开锁和解锁),而信号量本质上是一个计数器,它内部有一个变量计数信号值,可以保护一个资源可以同时被1个或者2个或者3个线程同时使用,如果信号量的值只是设置1(状态只有0和1),那么和互斥锁就是一样的功能。
总结
-
信号量也主要是用来保护共享资源(信号量也属于临界资源),使得资源在一个时刻只有一个线程或者多个线程独享。
-
信号量是一种特殊的变量,访问具有原子性, 用于解决进程或线程间共享资源引发的同步问题。
-
信号量就是一个计数变量,内部本身就是一个变量。只不过这个变量具有原子性。
-
信号量经常用来保护临界区资源、实现资源同步。
-
如果信号量只有2个值,0和1,就称为二值信号量==互斥锁。
**信号量和互斥锁(mutex)的区别:**互斥锁只允许一个线程进入临界区,而信号量允许多个线程同时进入临界区,要使用信号量同步,需要包含头文件semaphore.h
。
#include
关注
打赏
热门博文
- 智慧农业: STM32F103ZE+ESP8266+腾讯云物联网平台+微信小程序设计
- STM32+ESP8266+MQTT协议连接OneNet物联网平台
- STM32+ESP8266+MQTT协议连接阿里云物联网平台
- Linux下编写ENC28J60网卡驱动,完善网络设备框架
- Linux下automake工具使用(自动构建Makefile文件)
- Linux系统下基础命令介绍
- QT软件开发-得到唯一文件名-当前时间与GUID
- 音频频谱显示-基于fmod设计音乐播放器并动态显示频谱图(二)
- 音频频谱显示-显示音频文件静态频谱图(一)
- QT软件开发-基于FFMPEG设计录屏与rtsp、rtmp推流软件(支持桌面与摄像头)(三)