我们正在讲述我正在使用的一个类中的多线程编程。教授提出了一个额外的问题,我一直试图找出结果:单个信号量的多进程同步
每个进程P0,P1,P2和P3必须等待其他三个进入或到达一个特定的同步点他们的代码,然后才可能跨越自己的同步点。
我已经知道如何有四个信号灯回答这个问题,最困难的部分是只有一个信号量做。
任何建议或提示如何进行呢?
我们正在讲述我正在使用的一个类中的多线程编程。教授提出了一个额外的问题,我一直试图找出结果:单个信号量的多进程同步
每个进程P0,P1,P2和P3必须等待其他三个进入或到达一个特定的同步点他们的代码,然后才可能跨越自己的同步点。
我已经知道如何有四个信号灯回答这个问题,最困难的部分是只有一个信号量做。
任何建议或提示如何进行呢?
你在强加给您的解决方案的约束有点轻,但看到The Little Book of Semaphores并通过障碍的章节阅读。这应该给你一些想法。
谢谢你的资源,这应该是相当有帮助的。 – KidDaedalus 2009-10-27 04:40:09
原来教授所想说的是,你可以使用,而不是一二信号灯。他认为,正如我在考虑过这个问题一段时间后所做的那样,单个信号量是不可能做到的。
这就是为什么我评论你没有提到太多约束。你可以用一个信号量和互斥体来保护一个计数器,但我不确定你是否可以使用互斥体,或者它们是否会算作第二个信号量。 – Duck 2009-10-27 05:26:29
你的问题的措辞是一种不精确的,所以你不可能得到很好的指导。 – 2009-10-26 00:15:35