使用信号量

时间:2018-05-03 02:53:55

标签: c multithreading pthreads fork semaphore

我正在尝试编写一个程序,用信号量交换两个分叉的子进程,但我不知道该怎么做。例如,我有child1和child2,它们都调用相同的函数。我希望他们一次完成一次这个功能,如果我运行10次,我希望它看起来像 child1 的child2 child1 的child2 child1 的child2 child1 的child2 child1 的child2。我也使用共享内存来存储我拥有的信号量。

1 个答案:

答案 0 :(得分:1)

使用2个信号量,首先用一个和另一个初始化为0.

处理子1:

consume by 1 semaphore 1
do action
increase by 1 semaphore 2

处理子2:

consume by 1 semaphore 2
do action
increase by 1 semaphore 1