私は2つのゴールーチンを持っています:
func f1 {
... some code
// critical section 1 (CS1)
... critical section code
// end criticla section 1
... more code
}
func f2 {
... some code
// critical section 2 (CS2)
... critical section code
// end criticla section 2
... more code
}
func main() {
go f1()
go f2()
}
これらのルーチンのクリティカル セクションが常に交互に実行されるようにする適切な方法は何ですか?
つまり、CS1 は CS2 の後にのみ実行する必要があり、その逆も同様です: CS1、CS2、CS1、CS2、CS1 など。