我有三個(gè)這樣的并發(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)在,我面臨的問題是,由于三個(gè)并發(fā)例程的結(jié)果,有時(shí)會(huì)發(fā)生某些情況,有時(shí)print語句執(zhí)行不正確,這意味著無法整體打印,另一幅打印插入了某些東西。例如,例程1的Print(值a,值b,值c)給出的輸出類似于值a,值b,值g,其中值g由例程2插入。有人可以建議我如何停止它?我已經(jīng)嘗試過同步互斥程序。但是,可能是因?yàn)槲业拇a太長,可能是因?yàn)槲覠o法以正確的方式進(jìn)行鎖定解鎖,所以它給出了死鎖錯(cuò)誤。有人可以建議我如何以簡單的方式或以風(fēng)險(xiǎn)較小的sync-mutex過程實(shí)現(xiàn)這些方法。關(guān)于我的這個(gè)問題的更多信息可以在這里找到。
- 1 回答
- 0 關(guān)注
- 314 瀏覽
添加回答
舉報(bào)
0/150
提交
取消