青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-167  評(píng)論-8  文章-0  trackbacks-0

鎖類屬包含的類包裝簡(jiǎn)單的鎖定機(jī)制,比如互斥體、信號(hào)量、讀/寫互斥體和令牌等。這里我就以互斥體為例簡(jiǎn)單的介紹一下其使用方法,對(duì)其它的鎖類進(jìn)行一些簡(jiǎn)單的說(shuō)明。

1.互斥體的使用。

互斥體用于保護(hù)共享的易變代碼,也就是全局或靜態(tài)數(shù)據(jù)。這樣的數(shù)據(jù)必須通過(guò)互斥體進(jìn)行保護(hù),以防止它們?cè)诙鄠€(gè)線程同時(shí)訪問(wèn)時(shí)損壞。

在ACE中可以通過(guò)ACE_Thread_Mutex實(shí)現(xiàn)線程的訪問(wèn)互斥,下面的例子演示ACE_Thread_Mutex類的使用。

#include "ace/Thread.h" 
#include 
"ace/Synch.h" 

#include 
<iostream>
using namespace std;


ACE_Thread_Mutex mutex;

void* Thread1(void *arg) 
{
    mutex.acquire();
    ACE_OS::sleep(
3);
    cout
<<endl<<"hello thread1"<<endl;
    mutex.release();

    
return NULL; 
}
 

void* Thread2(void *arg) 
{
    mutex.acquire();
    cout
<<endl<<"hello thread2"<<endl;
    mutex.release();

    
return NULL; 
}
 

int main(int argc, char *argv[]) 

    ACE_Thread::spawn((ACE_THR_FUNC)Thread1);
    
    
//Thread2 比Thread1晚創(chuàng)建1秒鐘,故后嘗試獲取互斥體
    ACE_OS::sleep(1);
    ACE_Thread::spawn((ACE_THR_FUNC)Thread2);
    
    
while(true)
        ACE_OS::sleep(
10);

    
return 0
}
 

ACE_Thread_Mutex主要有兩個(gè)方法:

  1. acquire():用來(lái)獲取互斥體,如果無(wú)法獲取,將阻塞至獲取到為止。
  2. release():用來(lái)釋放互斥體,從而使自己或者其它線程能夠獲取互斥體。

當(dāng)線程要訪問(wèn)共享資源時(shí),首先調(diào)用acquire()方法獲取互斥體,從而獲取對(duì)改互斥體所保護(hù)的共享資源的唯一訪問(wèn)權(quán)限,訪問(wèn)結(jié)束時(shí)調(diào)用釋放互斥體,使得其它線程能獲取共享資源的訪問(wèn)權(quán)限。

在此例中,本來(lái)Thread2的打印消息在Thread1之前,但由于Thread1先獲得互斥體,故Thread2只有待Thread1結(jié)束后才能進(jìn)入臨界區(qū)。讀者朋友們可以通過(guò)將ACE_Thread_Mutex替換為ACE_NULL_Mutex看一下不加鎖的執(zhí)行結(jié)果。

2.ACE Lock類屬簡(jiǎn)介。

ACE Lock類屬列表如下:

名字

描述

ACE_Mutex

封裝互斥機(jī)制(根據(jù)平臺(tái),可以是mutex_t、pthread_mutex_t等等)的包裝類,用于提供簡(jiǎn)單而有效的機(jī)制來(lái)使對(duì)共享資源的訪問(wèn)序列化。它與二元信號(hào)量(binary semaphore)的功能相類似。可被用于線程和進(jìn)程間的互斥。

ACE_Thread_Mutex

可用于替換ACE_Mutex,專用于線程同步。

ACE_Process_Mutex

可用于替換ACE_Mutex,專用于進(jìn)程同步。

ACE_NULL_Mutex

提供了ACE_Mutex接口的"無(wú)為"(do-nothing)實(shí)現(xiàn),可在不需要同步時(shí)用作替換。

ACE_RW_Mutex

封裝讀者/作者鎖的包裝類。它們是分別為讀和寫進(jìn)行獲取的鎖,在沒(méi)有作者在寫的時(shí)候,多個(gè)讀者可以同時(shí)進(jìn)行讀取。

ACE_RW_Thread_Mutex

可用于替換ACE_RW_Mutex,專用于線程同步。

ACE_RW_Process_Mutex

可用于替換ACE_RW_Mutex,專用于進(jìn)程同步。

ACE_Semaphore

這些類實(shí)現(xiàn)計(jì)數(shù)信號(hào)量,在有固定數(shù)量的線程可以同時(shí)訪問(wèn)一個(gè)資源時(shí)很有用。在OS不提供這種同步機(jī)制的情況下,可通過(guò)互斥體來(lái)進(jìn)行模擬。

ACE_Thread_Semaphore

應(yīng)被用于替換ACE_Semaphore,專用于線程同步。

ACE_Process_Semaphore

應(yīng)被用于替換ACE_Semaphore,專用于進(jìn)程同步。

ACE_Token

提供"遞歸互斥體"(recursive mutex),也就是,當(dāng)前持有某令牌的線程可以多次重新獲取它,而不會(huì)阻塞。而且,當(dāng)令牌被釋放時(shí),它確保下一個(gè)正阻塞并等待此令牌的線程就是下一個(gè)被放行的線程。

ACE_Null_Token

令牌接口的"無(wú)為"(do-nothing)實(shí)現(xiàn),在你知道不會(huì)出現(xiàn)多個(gè)線程時(shí)使用。

ACE_Lock

定義鎖定接口的接口類。一個(gè)純虛類,如果使用的話,必須承受虛函數(shù)調(diào)用開(kāi)銷。

ACE_Lock_Adapter

基于模板的適配器,允許將前面提到的任意一種鎖定機(jī)制適配到ACE_Lock接口。

可以簡(jiǎn)單的分為以下幾類:

  1. 互斥鎖
    互斥鎖(通常稱為"互斥體"或"二元信號(hào)量")用于保護(hù)多線程控制并發(fā)訪問(wèn)的共享資源的完整性。互斥體通過(guò)定義臨界區(qū)來(lái)序列化多線程控制的執(zhí)行,在臨界區(qū)中每一時(shí)刻只有一個(gè)線程在執(zhí)行它的代碼。互斥體簡(jiǎn)單而高效(時(shí)間和空間)。
    ACE線程庫(kù)提供了Mutex式的類(是一組互斥體對(duì)象,擁有類似的接口),他是一種簡(jiǎn)單而高效的類型是"非遞歸"互斥體。非遞歸互斥體不允許當(dāng)前擁有互斥體的線程在釋放它之前重新獲取它。否則,將會(huì)立即發(fā)生死鎖。遞歸互斥體在ACE Recursive_Thread_Mutex類中可移植地實(shí)現(xiàn)。
  2. 讀者/作者鎖
    讀者/作者鎖與互斥體相類似。例如,獲取讀者/作者鎖的線程也必須釋放它。多個(gè)線程可同時(shí)獲取一個(gè)讀者/作者鎖用于讀,但只有一個(gè)線程可以獲取該鎖用于寫。當(dāng)互斥體保護(hù)的資源用于讀遠(yuǎn)比用于寫要頻繁時(shí),讀者/作者互斥體有助于改善并發(fā)的執(zhí)行。
    ACE線程庫(kù)提供了一個(gè)叫作RW_Mutex的類,在C++封裝類中可移植地實(shí)現(xiàn)了讀者/作者鎖的語(yǔ)義。讀者/作者鎖將優(yōu)先選擇權(quán)給作者。因而,如果有多個(gè)讀者和一個(gè)作者在鎖上等待,作者將會(huì)首先獲取它。

計(jì)數(shù)信號(hào)量
在概念上,計(jì)數(shù)信號(hào)量是可以原子地增減的整數(shù)。如果線程試圖減少一個(gè)值為零的信號(hào)量的值,它就會(huì)阻塞,直到另一個(gè)線程增加該信號(hào)量的值。
計(jì)數(shù)信號(hào)量用于追蹤共享程序狀態(tài)的變化。它們記錄某種特定事件的發(fā)生。因?yàn)樾盘?hào)量維護(hù)狀態(tài),它們?cè)试S線程根據(jù)該狀態(tài)來(lái)作決定,即使事件是發(fā)生在過(guò)去。
信號(hào)量比互斥體效率要低,但是,它們要更為通用,因?yàn)樗鼈儫o(wú)需被最初獲取它們的同一線程獲取和釋放。這使得它們能夠用于異步的執(zhí)行上下文中(比如信號(hào)處理器)。ACE線程庫(kù)提供一個(gè)叫作Semaphore的類來(lái)可移植地在C++包裝類中實(shí)現(xiàn)信號(hào)量語(yǔ)義。

posted on 2010-05-14 10:03 老馬驛站 閱讀(1126) 評(píng)論(0)  編輯 收藏 引用 所屬分類: ACE
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            在线日韩电影| 国产精品va在线播放我和闺蜜| 亚洲精品日韩久久| 欧美中文字幕视频在线观看| 亚洲免费成人av| 好看的av在线不卡观看| 欧美日韩一区二区三| 久久综合久色欧美综合狠狠 | 欧美成人久久| 欧美怡红院视频| 亚洲五月六月| 亚洲日本中文字幕区| 久热综合在线亚洲精品| 欧美在线视频免费观看| 亚洲欧美国产另类| 亚洲视频www| 一本到12不卡视频在线dvd| 91久久精品美女高潮| 黄色av日韩| 黄色日韩网站| 韩国精品主播一区二区在线观看| 国产精品久久一卡二卡| 欧美日韩免费看| 欧美日韩视频在线一区二区观看视频 | 黄色成人小视频| 国产女主播一区二区三区| 欧美三级欧美一级| 欧美日韩国产在线一区| 欧美日韩国产首页| 欧美体内she精视频在线观看| 欧美激情精品久久久久久大尺度| 女主播福利一区| 欧美大片在线观看| 欧美黑人多人双交| 欧美高清视频在线播放| 欧美成人精品不卡视频在线观看 | 欧美1级日本1级| 美腿丝袜亚洲色图| 免费中文日韩| 亚洲成色999久久网站| 亚洲盗摄视频| 日韩一二三区视频| a91a精品视频在线观看| 一区二区三区欧美成人| 亚洲在线观看视频网站| 亚洲在线免费| 香蕉久久久久久久av网站| 欧美一区二区视频在线观看| 久久久久久综合| 欧美国产日韩一二三区| 欧美精品一区二区三区在线播放| 欧美日本一道本在线视频| 欧美性做爰猛烈叫床潮| 国产日本欧美视频| 亚洲成人在线视频播放| 日韩亚洲视频在线| 欧美亚洲一级| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲第一页自拍| 一区二区三区国产精品| 亚洲女同性videos| 久久久久久高潮国产精品视| 免费欧美在线视频| 欧美日韩日日骚| 国产精品一区二区欧美| 影音先锋另类| 正在播放亚洲一区| 欧美中文字幕| 亚洲国产精品va在看黑人| 亚洲午夜性刺激影院| 久久国产欧美日韩精品| 欧美极品一区| 国产一区二区欧美日韩| 91久久精品国产91性色| 亚洲欧美激情四射在线日| 玖玖综合伊人| 99v久久综合狠狠综合久久| 欧美一二三视频| 欧美久久99| 国产在线拍偷自揄拍精品| 亚洲人成在线观看一区二区| 欧美亚洲综合网| 亚洲高清色综合| 小处雏高清一区二区三区| 欧美jjzz| 黄色影院成人| 亚洲一区黄色| 亚洲国产成人av在线| 午夜精品福利一区二区蜜股av| 欧美成人国产一区二区| 国产一二精品视频| 亚洲特级毛片| 欧美激情中文字幕在线| 亚洲欧洲av一区二区三区久久| 欧美人与性动交cc0o| 尤物精品在线| 久久成人免费视频| 99精品欧美一区| 女同一区二区| 在线高清一区| 久久精品一区二区国产| 99综合视频| 蜜臀99久久精品久久久久久软件| 国产女人aaa级久久久级| 一区二区三区回区在观看免费视频| 久久亚洲精品伦理| 午夜亚洲精品| 国产精品国产三级国产aⅴ9色| 亚洲精品中文字幕有码专区| 久久综合网hezyo| 欧美专区在线| 国产婷婷色一区二区三区| 亚洲欧美日韩一区二区在线 | 国产亚洲一区二区精品| 午夜精品久久久久久久久久久 | 国产亚洲精品久久久久动| 亚洲小少妇裸体bbw| 亚洲人人精品| 欧美金8天国| 日韩一区二区精品| 亚洲精品久久久一区二区三区| 久久中文字幕一区| 在线精品国产欧美| 麻豆精品网站| 久久久欧美一区二区| 狠狠爱综合网| 麻豆精品一区二区av白丝在线| 久久精品国产视频| 国产精品一区二区三区久久| 亚洲欧美怡红院| 亚洲女同精品视频| 国产日韩精品在线播放| 午夜影视日本亚洲欧洲精品| 亚洲一区二区三区久久 | 亚洲欧美视频一区二区三区| 国产精品日本精品| 久久av一区二区| 欧美一乱一性一交一视频| 国产亚洲一区在线播放| 快射av在线播放一区| 久久久久久亚洲精品杨幂换脸| 亚洲第一精品夜夜躁人人爽| 亚洲电影免费在线观看| 欧美日本一区| 欧美一级二级三级蜜桃| 久久精品二区亚洲w码| 亚洲国产成人午夜在线一区| 亚洲国产成人不卡| 欧美日韩久久不卡| 欧美一区二区三区在线播放| 欧美影院午夜播放| 亚洲高清视频一区二区| 亚洲精品你懂的| 欧美久久久久久久久久| 亚洲专区欧美专区| 久久国内精品自在自线400部| 亚洲福利av| 亚洲精品免费一区二区三区| 国产精品区一区二区三区| 久久综合伊人77777尤物| 免费看黄裸体一级大秀欧美| 中日韩美女免费视频网址在线观看 | 国产午夜精品美女视频明星a级 | 亚洲国产裸拍裸体视频在线观看乱了 | 欧美在线视频免费| 亚洲日本成人| 亚洲小说春色综合另类电影| 国产字幕视频一区二区| 亚洲第一精品夜夜躁人人躁| 欧美视频在线一区二区三区| 久久久噜噜噜久久久| 欧美日韩成人在线观看| 欧美在线视频一区二区| 女女同性女同一区二区三区91| 亚洲免费在线电影| 免费日韩一区二区| 午夜影视日本亚洲欧洲精品| 免费欧美视频| 欧美一区二视频| 欧美成人午夜视频| 久久国产88| 欧美日韩国产一级片| 久久午夜精品一区二区| 欧美三级在线视频| 麻豆精品在线播放| 国产精品成人一区二区艾草| 欧美成年人视频网站欧美| 国产精品日韩在线播放| 欧美激情第六页| 国产亚洲精品高潮| 国产精品99久久久久久白浆小说| 亚洲国产精品久久久久秋霞蜜臀| 亚洲女性喷水在线观看一区| 日韩一级成人av| 久久男人av资源网站| 久久av在线看| 国产精品xxx在线观看www| 亚洲电影自拍| 国产综合久久| 亚洲免费在线播放|