我在 Go 程序中有一堆函数,它们在一个结构上工作,该结构使用互斥锁来管理对其函数的并发访问。
其中一些对特定数据进行操作的函数需要锁,因此使用 mutex.Lock() 来获取管理对该数据访问的互斥锁。今天我遇到了一个问题,其中两个锁定方法相互调用。一旦 mutex.Lock() 第二次被调用,它就会阻塞——当然。
我面临的问题与此代码非常相似:http : //play.golang.org/p/rPARZsordI
关于如何解决这个问题,Go 中有什么最佳实践吗?据我所知,递归锁在 Go 中不可用。
慕工程0101907
相关分类