[英]boost::scoped_lock unlock
我可以在超出scoped_lock范圍之前解鎖互斥鎖嗎? 我該怎么辦?
{boost::mutex::scoped_lock lock(mutex);
if(conditionaA)
{
if(conditionB)
{
//could I unlock here as I don't want to hold the lock too long.
//perform calculation
}
}
else
{
}
}//lock scope
謝謝。
是。
使用unlock()
方法。
{boost::mutex::scoped_lock lock(mutex);
if(conditionaA)
{
if(conditionB)
{
//could I unlock here as I don't want to hold the lock too long.
lock.unlock(); // <--
}
//perform calculation
}
else
{
}
}//lock scope
是; 只需使用.unlock()成員函數。
boost::mutex::scoped_lock
與boost::unique_lock<mutex>
,您可以解鎖它們。 為此,必須由您的線程將其鎖定,否則您將獲得異常。
unique_lock的析構函數可確保互斥對象在銷毀時被解鎖,因此,使用鎖定對象的目的是確保在保持鎖定的任何時間拋出異常時,都可以確保此操作(異常安全)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.