C 如果5个进程在一个semphore中等待会发生什么?

C 如果5个进程在一个semphore中等待会发生什么?,c,semaphore,C,Semaphore,Im使用semaphore.h,如果5个子进程等待sem_wait,而另一个子进程解锁信号量sem_post,会发生什么情况?它们都将被解锁吗?不,只有一个将被解锁。RTFM 如果有许多进程被阻塞,那么将选择一个进程来解除阻塞,这取决于操作系统。调度程序将选择一个。哪一个将被解锁?@Bibrasnatho其中一个:-)由于随机性的力量,操作系统决定,例如调度程序选择一个@比布拉斯纳托。我想你不能选择用这种方法醒来的人。我不确定@Bibrasnatho。不过,我相信你所问的是另一个问题。我建议

Im使用semaphore.h,如果5个子进程等待
sem_wait
,而另一个子进程解锁信号量
sem_post
,会发生什么情况?它们都将被解锁吗?

不,只有一个将被解锁。RTFM


如果有许多进程被阻塞,那么将选择一个进程来解除阻塞,这取决于操作系统。调度程序将选择一个。

哪一个将被解锁?@Bibrasnatho其中一个:-)由于随机性的力量,操作系统决定,例如调度程序选择一个@比布拉斯纳托。我想你不能选择用这种方法醒来的人。我不确定@Bibrasnatho。不过,我相信你所问的是另一个问题。我建议你接受这个答案,因为这个问题是IMHO回答的,并提出了一个新的问题。一个有效的东西的真正目的是防止并发访问资源,即同时取消阻止多个线程对该资源的访问?我希望所有线程都等待,但取消阻止特定线程及其pid。我应该怎么做?为什么不使用5个信号量,每个子进程一个?