This topic has been archived. It cannot be replied.
-
工作学习 / 专业技术讨论 / 请教多线程协同问题:现有一段代码用来产生7个一模一样的线程,去执行名为phase1和phase2的两段代码。问如何只使用一个非负值的semaphore来实现目标——只有当所有的线程都执行完phase1后,他们才能以任意次序执行phase2。
(只能使用p和v进行排列组合,不能使用诸如java的synchronized或者自己编写函数。semaphore的初始值可以随便设)
如果可以使用负值的话就很简单,vpv就可以,可是不能使用负值我就想不出来了。
请教编程高手~
-gamelover(电车男go);
2005-7-29
{386}
(#2425141@0)
-
乱答一下:1和0表示两个状态,-1和0也可以表示两个状态.1和0都是非负值,用pv操作就可以实现.至于如何安排时序你肯定知道啦.
-mike20030405(mike);
2005-8-2
(#2429243@0)