私はこのような3つの同時ルーチンを持っています、
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)
}
今私が直面している問題は、3つの同時ルーチンの結果として、printステートメントが正しく実行されない場合、全体を印刷しないことを意味する場合があり、別の印刷によって挿入されたものがある場合があります。たとえば、ルーチン1のPrint(値a、値b、値c)は、値a、値b、値gのような出力を提供します。ここで、値gはルーチン2によって挿入されます。誰かが私に提案できますか、どうすれば停止できますか?sync-mutexプロシージャを試しました。ただし、コードが長すぎて、正しい方法でロック解除を実行できない可能性があるため、デッドロックエラーが発生している可能性があります。誰かが私にそれらを簡単な方法で、またはよりリスクの少ないsync-mutex手順で実装する方法を提案できますか?
私のこの問題についての詳細はここで見つけることができます。