Operating system 是否可以只使用两个信号量来同步三个或更多线程?

Operating system 是否可以只使用两个信号量来同步三个或更多线程?,operating-system,posix,Operating System,Posix,我们有三个或更多线程,可以只使用两个信号量(二进制或计数信号量)吗?我脑子里突然冒出一个想法,就是玩弄sem_post-s和sem_wait-s的数量。 欢迎任何想法、策略 信号灯用于保护共享资源。您需要与共享资源一样多的信号量,这与访问这些资源的线程数量无关。mouviciel的回答是准确的,可能已经足够了——信号量的数量实际上与线程的数量无关。我认为单个信号灯可以同步数百个线程,但可能还有更多问题。你能详细说明一下你的线程在做什么,以及为什么它们需要同步吗?如果线程之间存在并发性,并且出现竞

我们有三个或更多线程,可以只使用两个信号量(二进制或计数信号量)吗?我脑子里突然冒出一个想法,就是玩弄sem_post-s和sem_wait-s的数量。
欢迎任何想法、策略

信号灯用于保护共享资源。您需要与共享资源一样多的信号量,这与访问这些资源的线程数量无关。

mouviciel的回答是准确的,可能已经足够了——信号量的数量实际上与线程的数量无关。我认为单个信号灯可以同步数百个线程,但可能还有更多问题。你能详细说明一下你的线程在做什么,以及为什么它们需要同步吗?如果线程之间存在并发性,并且出现竞争情况,一个信号量是不够的。i、 e.有三个线程运行多次迭代。如果我希望这三个线程以特定的顺序执行,比如迭代0-threadA,threadB,threadC;迭代1-threadA。。。。需要实现多个信号量。到目前为止,我已经发现可以有两个信号灯在这样做。然而,它可以只用一个线程来完成吗?如果线程是按顺序执行的,为什么要使用线程呢?对这个问题的回答可能会揭示一些您想要保护的隐藏资源。