一个线程中有多个锁,为什么可能需要它们?
Several locks in one thread, why might they be needed?
它说 here :
While a lock is held, the thread that holds the lock can again acquire and release the lock.
问题。一个线程中连续使用多个锁有什么用?或者它什么都不给,但是文章说要澄清在一个线程内,第二个锁中的代码也会被执行,因为锁是在同一个线程中使用的?
我只是想了解这些信息的用途。
这叫递归锁。如果您有复杂的路径可能最终会尝试两次锁定资源(如在递归函数中),这将很有用。它节省了你必须跟踪你是否已经有锁。
它通常被实现为一个计数器,在第一次锁定之后后续的锁定只是递增计数器,解锁递减,当计数达到 0 时释放互斥量
它说 here :
While a lock is held, the thread that holds the lock can again acquire and release the lock.
问题。一个线程中连续使用多个锁有什么用?或者它什么都不给,但是文章说要澄清在一个线程内,第二个锁中的代码也会被执行,因为锁是在同一个线程中使用的?
我只是想了解这些信息的用途。
这叫递归锁。如果您有复杂的路径可能最终会尝试两次锁定资源(如在递归函数中),这将很有用。它节省了你必须跟踪你是否已经有锁。
它通常被实现为一个计数器,在第一次锁定之后后续的锁定只是递增计数器,解锁递减,当计数达到 0 时释放互斥量