我们正在考虑我正在上课的多线程编程。教授提出了一个奖金问题,我一直在尝试,无济于事,弄清楚:
进程P0,P1,P2和P3中的每一个必须等待其他三个进程交叉或到达其代码中的特定同步点,然后才能使该进程跨越其自己的同步点。
我已经知道如何用四个信号量来回答这个问题,困难的部分只用一个信号量来做。
有关如何进行的任何建议或提示?
答案 0 :(得分:0)
如果它不是二进制信号,只需将信号量初始化为-4。
答案 1 :(得分:0)
您对解决方案的限制有所了解,但请参阅The Little Book of Semaphores并阅读有关障碍的章节。这应该会给你一些想法。
答案 2 :(得分:0)
原来,教授原本打算说你可以使用两个信号量而不是一个信号量。他认为,正如我在思考问题一段时间之后所做的那样,单个信号量是不可能做到的。