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