我有三個這樣的并發(fā)例程,func Routine1() {Print (value a, value b, value c)Print (value a, value b, value c)Print (value a, value b, value c)}func Routine2() {Print (value e, value f, value g)Print (value e, value f, value g)Print (value e, value f, value g)}func Routine3() {Print (value x, value y, value z)Print (value x, value y, value z)Print (value x, value y, value z)}func main() {go Routine1(command12, response12, command13, response13)go Routine2(command12, response12, command23, response23)Routine3(command13, response13, command23, response23)}現(xiàn)在,我面臨的問題是,由于三個并發(fā)例程的結(jié)果,有時會發(fā)生某些情況,有時print語句執(zhí)行不正確,這意味著無法整體打印,另一幅打印插入了某些東西。例如,例程1的Print(值a,值b,值c)給出的輸出類似于值a,值b,值g,其中值g由例程2插入。有人可以建議我如何停止它?我已經(jīng)嘗試過同步互斥程序。但是,可能是因為我的代碼太長,可能是因為我無法以正確的方式進行鎖定解鎖,所以它給出了死鎖錯誤。有人可以建議我如何以簡單的方式或以風(fēng)險較小的sync-mutex過程實現(xiàn)這些方法。關(guān)于我的這個問題的更多信息可以在這里找到。
- 1 回答
- 0 關(guān)注
- 306 瀏覽
添加回答
舉報
0/150
提交
取消