我使用fork來分叉多個子進程,但由於某種原因,它們在這裏打印的是一個例子。叉()導致打印語句重疊
Winning Child (5): 0
Child placed peice at: 6,4
- - - - - - - -
Child placed peice at: 2,6
- - - - - - - -
Child placed peice at: 4,1
- - - - - - - -
Child placed peice at: 6,5
- - - - - - - -
Child placed peice at: 3,1
R - - - - - - -
Child placed peice at: 5,4
R - - - - - - -
Child placed peice at: 5,7
B B B B - R B R
R R B B R R B B
Child placed peice at: 2,2
這應該打印這樣的:
Winner Parent
Winning Parent (20): 26181
- - - - - - - -
- - - - - - - -
- - - - - - - -
- - - - - - - -
B - - R - - - -
B - - R B - - -
B - - R B B R R
R R - R R B B B
有沒有辦法阻止其他進程停止其印刷當我打印中獎板?
您需要在進程之間設置一些通信,以便一個進程可以告訴其他進程停止打印。 – 2013-03-04 21:33:36
我有管道溝通,但由於某種原因,它仍然打印時,我不告訴它。 – jg943 2013-03-04 21:35:12
發佈您的代碼。也許你在做特定的操作時不檢查你是哪個進程。考慮到'fork()'返回父進程中子進程的PID,子進程返回0。 – niculare 2013-03-04 21:38:19