本文主要是介绍unlock of unowned mutex(stl::mutex),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天在使用stl的mutex过程中出现了异常,初步研究是由于mutex的加锁和解锁在分别在不同线程中执行所导致。
所以,对于mutex而言,加锁和解锁都要在同一线程中,而不应该是一个线程加锁,另一个去解锁。
官方文档的解释:
对于lock:
Blocks the calling thread until the thread obtains ownership of the mutex
.
注意事项:If the calling thread already owns the mutex
, the behavior is undefined.
对于unlock:
Releases ownership of the mutex
.
注意事项:If the calling thread does not own the mutex
, the behavior is undefined.
总结起来就是一句话:不能在同一线程中同时调用两次lock或两次unlock(没有配对的情况下);某个线程a执行了lock则必须执行unlock。
这篇关于unlock of unowned mutex(stl::mutex)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!