全心思齐网

信号量的初值可以是负数吗?

1.信号量根据内核中的数据结构设初值

2.信号量初值可以是任意正整数(不一定正确仅供参考 )

信号量在实现多个进程互斥访问时,信号量的值为正表示当前可用的资源数量;负值数表示在等待队列
中进程数。

若有 m 个进程共享同一临界资源(即只能被一个进程使用),信号量的初值设为 1,如果 m 个进程都申请该信号
量,则信号量的值为 1-m,仅有一个进程获得该资源,而 m-1 个进程处于等待状态。

信号量可用于进程同步,进程互斥,控制进程的前驱关系。

匿名回答于2021-09-05 01:16:48


相关知识问答