(通常用于互斥访问和任务同步互斥,与互斥信号量类似但二值信号量有可能会导致任务优先级翻转的问题所以二值信号量更适合与任务同步)。
例1:信号量互斥操作
若用于互斥,几个进程(或线程)往往只设置一个信号量 sem,它们的操作流程如下图2-1:
例2:信号量同步操作
当信号量用于同步操作时,往往会设置多个信号量,并安排不同的初始值来实现它们之间的循序操作它们的操作流程如下图2-2:
图2-1 信号量互斥操作 图2-2 信号量同步操作