久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

std::mutex (2013-01-17 12:25:41)轉(zhuǎn)載▼

 禁忌石 2017-05-30
std::mutex (2013-01-17 12:25:41)轉(zhuǎn)載▼
標簽: c11 stdmutex 異常 死鎖 it 分類: c編程
c11中添加了std::mutex, vs2012支持該特性.

一、基本使用方法

#include

    std::mutex m;
    std:lock(&m); 
    //do something
    std::unlock(&m); 

或者:
#include

    std::mutex m;
    m.lock (); 
    //do something
    m.unlock(); 

這種使用很直接,,很明了,。但是do something可能會帶來異常,導致std::unlock(&m)沒有執(zhí)行,,m處于死鎖狀態(tài),。

二、避免異常而導致的死鎖,。
a. 在do something中加上try...catch,在發(fā)生異常的地方釋放鎖:

#include

    std::mutex m;
    m.lock (); 
try
{
//do something
}catch(int e)
{
m.unlock();
return ;
}
    m.unlock(); 

b.新建一個mutex管理器, 讓對象的析構(gòu)函數(shù)自動釋放掉鎖,。
class Lock:
{
Lock(const std::mutex & m){m.lock();}
~Lock(const std::mutex & m){m.unlock();}
}

std::mutex m;
Lock(m);
//do something

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多