可重入互斥锁
外观
计算机科学中,可重入互斥锁(英语:reentrant mutex)是互斥锁的一种,同一线程对其多次加锁不会产生死锁。可重入互斥锁也称递归互斥锁(英语:recursive mutex)或递归锁(英语:recursive lock)。
如果对已经上锁的普通互斥锁进行“加锁”操作,其结果要么失败,要么会阻塞至解锁。而如果换作可重入互斥锁,当且仅当尝试加锁的线程就是持有该锁的线程时,类似的加锁操作就会成功。可重入互斥锁一般都会记录被加锁的次数,只有执行相同次数的解锁操作才会真正解锁。
递归互斥锁解决了普通互斥锁不可重入的问题:如果函数先持有锁,然后执行回调,但回调的内容是调用它自己,就会产生死锁。[1]
另见
[编辑]参考文献
[编辑]- ^ Buschmann, Frank; Henney, Kevlin; Schmidt, Douglas C. Pattern-Oriented Software Architecture, A Pattern Language for Distributed Computing. John Wiley & Sons. 2007: 374 [2018-07-18]. (原始内容存档于2016-05-09) (英语).
这是一篇与计算机相关的小作品。您可以通过编辑或修订扩充其内容。 |