簡體   English   中英

boost :: scoped_lock解鎖

[英]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_lockboost::unique_lock<mutex> ,您可以解鎖它們。 為此,必須由您的線程將其鎖定,否則您將獲得異常。

unique_lock的析構函數可確保互斥對象在銷毀時被解鎖,因此,使用鎖定對象的目的是確保在保持鎖定的任何時間拋出異常時,都可以確保此操作(異常安全)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM