如果我有两个互斥锁保护的资源,为避免死锁,我应该按一定顺序锁定它们。 Go没有可变关键字。那么,编译器会在这两个锁定操作之间更改执行顺序吗?
看看Go内存模型:
https://golang.org/ref/mem
尤其是:互斥锁可用于建立先于关系的关系。如果您先锁定一个互斥锁,则所有goroutine将按该顺序观察这些操作。