信号量的初始值有什么意义?

fre*_*ght 3 multithreading operating-system

信号量是一种避免竞争条件的机制。但是信号量的初始值有什么意义呢?

假设一个信号量的初始值为 5,是不是 5 个进程可以同时访问某个共享资源?

Jas*_*ans 5

我对信号量的了解很生疏,但是如果您创建一个初始计数为 5 的信号量,则意味着 5 个线程(不是进程)可以同时访问该信号量。查看这些链接以了解更多详细信息:


Bar*_*lly 3

信号量是协调多个控制线程的一种方式,而不仅仅是为了互斥。例如,经典的固定大小生产者-消费者队列可以使用为生产者初始化为非零值的信号量,以便当缓冲区中有太多元素时它们会阻塞。