我有两个套路:
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 等。