2013-04-10 64 views
2

我有点新的unix编程,我需要一些帮助。C多个进程之间的UNIX信号量同步

我想要做一些事情,比如用信号量忙等待。 我有多个由父母分叉的procesess。在这个父母中,我创建了一个Semaphore。 非常抱歉,我需要一个像barrier.I想告诉所有的子进程,当另一个孩子已经完成他的init部分。我想等待,直到所有的子进程已完成他们的初始化,然后我想开始大量计算。

回答

2

这些步骤并非真正专用于UNIX。

在父项中,创建一个值与子项数相同的信号量。

当每个孩子完成初始化时,孩子减少信号量并等待零。

当信号量达到零时,所有的孩子都会被初始化,你可以做别的事情。