使用单个信号量的多进程同步

时间:2009-10-25 23:12:08

标签: semaphore

我们正在考虑我正在上课的多线程编程。教授提出了一个奖金问题,我一直在尝试,无济于事,弄清楚:

进程P0,P1,P2和P3中的每一个必须等​​待其他三个进程交叉或到达其代码中的特定同步点,然后才能使该进程跨越其自己的同步点。

我已经知道如何用四个信号量来回答这个问题,困难的部分只用一个信号量来做。

有关如何进行的任何建议或提示?

3 个答案:

答案 0 :(得分:0)

如果它不是二进制信号,只需将信号量初始化为-4。

答案 1 :(得分:0)

您对解决方案的限制有所了解,但请参阅The Little Book of Semaphores并阅读有关障碍的章节。这应该会给你一些想法。

答案 2 :(得分:0)

原来,教授原本打算说你可以使用两个信号量而不是一个信号量。他认为,正如我在思考问题一段时间之后所做的那样,单个信号量是不可能做到的。