如何使用信号量在分叉进程之间切换?

时间:2016-03-29 02:42:01

标签: c process semaphore

假设您有一个父进程,它会分叉两个子进程。

您希望这三个进程按顺序执行某些操作(首先是一个子进程,然后是另一个子进程,然后是父进程),直到达到停止条件。

必须使用信号量来实现此顺序。

我的问题是如何在三个流程之间切换。换句话说,您如何识别给定进程正在运行并使用信号量来确保没有进程连续运行两次或被跳过。我知道信号量可以用来“阻塞”直到信号到达,但我不知道如何使用这个概念来使我的三个过程按顺序排列。

1 个答案:

答案 0 :(得分:0)

首先,您必须制作一些shared memory。因此,如果你改变了那个记忆中的东西,那么这将反映到所有的过程......现在是时候使用sem_wait(&mutex)sem_post(&mutex)来获得你想要的结果..如果你没有得到那么让我知道我会提供一些代码片段,以便您可以轻松理解......