【发布时间】:2015-10-22 16:21:01
【问题描述】:
我在一个 Go 程序中有一堆函数,它们作用于一个使用互斥体来管理对其函数的并发访问的结构。
其中一些对特定数据进行操作的函数需要锁,因此使用 mutex.Lock() 来获取管理对该数据的访问的互斥锁。今天我遇到了两个锁定方法相互调用的问题。一旦第二次调用 mutex.Lock() 它就会阻塞 - 当然。
我面临的问题与这段代码非常相似:http://play.golang.org/p/rPARZsordI
Go 中是否有关于如何解决此问题的最佳实践?据我所知,递归锁在 Go 中不可用。
【问题讨论】:
-
拥有一个锁定、写入和解锁的方法,并让所有其他方法使用该方法。
标签: multithreading go mutex