内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

boostmutex以及scoped_lock應(yīng)用

boost::mutex提供了跨平臺(tái)的鎖操作,不允許多個(gè)線程同時(shí)訪問共享資源,從而確保共享資源不被臟寫。在本文中僅僅是介紹簡單的兩種鎖,最高效的鎖boost::mutex和區(qū)域鎖boost::mutex::scoped_lock

創(chuàng)新互聯(lián)為企業(yè)級(jí)客戶提高一站式互聯(lián)網(wǎng)+設(shè)計(jì)服務(wù),主要包括成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、app軟件開發(fā)公司、重慶小程序開發(fā)公司、宣傳片制作、LOGO設(shè)計(jì)等,幫助客戶快速提升營銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經(jīng)驗(yàn)豐富的經(jīng)驗(yàn),可以確保每一個(gè)作品的質(zhì)量和創(chuàng)作周期,同時(shí)每年都有很多新員工加入,為我們帶來大量新的創(chuàng)意。 

boost::mutex例子

#include <boost/thread/mutex.hpp>

boost::mutex m_mutexAccessServiceManager;

void CSettingCenter::ClearPlatformServiceInfoCache()

{

m_mutexAccessServiceManager.lock();

m_mapAccessServiceManager.clear();

m_mutexAccessServiceManager.unlock();

}

區(qū)域鎖boost::mutex::scoped_lock顧名思義就是在作用域內(nèi)有效,當(dāng)離開作用域自動(dòng)釋放鎖,傳遞參數(shù)是鎖。區(qū)域鎖就是把鎖封裝到一個(gè)對(duì)象里面。鎖的初始化放到構(gòu)造函數(shù),鎖的釋放放到析構(gòu)函數(shù)。這樣當(dāng)鎖離開作用域時(shí),

析構(gòu)函數(shù)會(huì)自動(dòng)釋放鎖。即使運(yùn)行時(shí)拋出異常,由于析構(gòu)函數(shù)仍然會(huì)自動(dòng)運(yùn)行,所以鎖仍然能自動(dòng)釋放。一個(gè)典型的區(qū)域鎖

void test()

{

boost::mutex::scoped_lock lock(m_mutexAccessServiceManager);

m_mapAccessServiceManager.clear();

}

應(yīng)用于有大量的return返回的代碼,避免出現(xiàn)死鎖的問題

擴(kuò)展

std::scoped_lock提供了可變參數(shù)長度的構(gòu)造器,接收多個(gè)鎖。允許在可能導(dǎo)致死鎖的狀態(tài)下,對(duì)多個(gè)互斥量加鎖。例如:
{
??? // safely locked as if using std::lock
??? std::scoped_lock<std::mutex, std::mutex> lock(mutex1, mutex2);????
}
目前std::lock_guard已經(jīng)被廢棄,GCC7已經(jīng)完整支持

friend void swap(X& lhs, X& rhs)
{
??? if (&lhs == & rhs)
??????? return;
??? std::lock(lhs.m, rhs.m);
??? std::lock_guard<std::mutex> lock_a(lhs.m, std::adopt_lock);
??? std::lock_guard<std::mutex> lock_b(rhs.m, std::adopt_lock);
??? swap(lhs.some_detail, rhs.some_detail);
}

friend void swap(X& lhs, X& rhs)
{
??? if (&lhs == &rhs)
??????? return;
??? std::scoped_lock guard(lhs.m, rhs.m);
??? swap(lhs.some_detail, rhs.some_detail);
}

引用
https://stackoverflow.com/questions/43019598/stdlock-guard-or-stdscoped-lock

名稱欄目:boostmutex以及scoped_lock應(yīng)用
標(biāo)題來源:http://www.rwnh.cn/article38/gsjhsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、靜態(tài)網(wǎng)站App設(shè)計(jì)、全網(wǎng)營銷推廣、網(wǎng)站制作、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
海盐县| 漯河市| 浮梁县| 海原县| 宿松县| 资兴市| 宜春市| 绍兴县| 个旧市| 阿尔山市| 昌黎县| 鹤峰县| 建水县| 碌曲县| 合江县| 亚东县| 惠州市| 柳林县| 河北区| 清涧县| 遂昌县| 玉环县| 武夷山市| 茂名市| 永善县| 房山区| 游戏| 社旗县| 辰溪县| 宁河县| 思茅市| 申扎县| 上杭县| 泗水县| 麻江县| 同江市| 东兴市| 洛川县| 射洪县| 宜黄县| 焦作市|