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

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

一個簡單的線程管理機制(轉)

Posted on 2009-01-18 19:07 S.l.e!ep.¢% 閱讀(312) 評論(0)  編輯 收藏 引用 所屬分類: C++
一個簡單的線程管理機制
2008年04月14日 11:45:45   【發表評論/查看評論

????周末,總是有點那么的無聊。閑來沒事,想想每次自己要進行多線程編程時的痛苦,也并借機考慮設計了一個簡單的線程管理方式。?
????沒什么好說的,首先想想線程的創建,每次都要CreateThread,傳遞一堆的參數,還得沒事查查MSDN,唉,效率低啊。反正,對于我來說,線程基本都是缺省優先級、缺省安全的。不如把這些一起封裝了。
????不多說,C++不用對象機制用什么?順便借鑒一下java。來個實際線程就是run,啟動采用start。
class thread
{
public:
???? thread( void );
???? virtual ~thread( void );
?
???? virtual void run() = 0;
?
???? void start();
};
???? 這個也就是最基本的,基于對象的線程基類了。子類只需要實現run作為線程,調用start,就可以啟動線程了。線程的所需參數,很簡單,基于對象,有需要的,做為擴展類的成員變量——成員資源來訪問。
??? 就這么簡單?線程訪問最大的問題——資源共享。那好,很容易想到互斥量。還有java的關鍵字synchronized,我們也就加一個鎖的概念。
class thread
{
public:
???? thread( void );
???? virtual ~thread( void );
?
???? virtual void run() = 0;
?
???? void start();
?
???? static void syncLock( void *res,bool lock );
};
????這樣,在最基本的線程資源——HANDLE,就可以被管理了,資源的訪問也可以通過lock和unlock來保護了。
????實際中,很多時候,我們希望能限制或知道有多少線程在運行,那么再加一個運行線程記數功能。大多時候,往往是采用線程池,而且會根據CPU數目,決定運行的線程數目。我們干脆,再提供一個功能,限制對象上可以允許同時運行的線程數目。那好,改為(同時加上一些保護和注解):
typedef unsigned int U32;
/**
?* 線程對象
?* 提供基于對象的線程處理接口
?*/
class thread
{
public:
???? /**
????? * 線程基于對象的構造
????? * para max 允許最多同時運行線程數
????? */
???? explicit thread( U32 max = -1 );
???? virtual ~thread( void );
?
???? /**
????? * 啟動一個線程
????? * @return 啟動成功否
????? */
???? bool start( void );
?
???? /**
????? * 對象上啟動的線程數
????? * @return 線程數
????? */
???? U32 count( void );
????
???? /**
????? * 線程執行函數
????? * @return 無
????? */
???? virtual void run( void ) = 0;
?
???? /**
????? * 為對象加解鎖
????? * @return 無
????? * @para res 要加解鎖的資源對象
????? * @para lock 加鎖還是解鎖
????? */
???? static void syncLock( void *res,bool lock );
?
private:
???? thread( const thread &t );
???? thread &operator=( const thread &t );
?
???? void *m_datas;
};
????至于實現,我想不難。別忘了,對象銷毀時要等待所有線程結束,并釋放HANDLE資源哦。否則,線程會訪問錯誤的內存,還有線程HANDLE被泄漏的。(千萬別死鎖了,自己實現時就因為資源鎖來鎖去,鎖死了。)
????哈哈,就這么簡單,一個簡單的線程創建、管理就實現了。至于void *,你可以根據自己的實現去定義數據結構。
東西簡單,也就不貼出cpp源碼了,關鍵是個想到、做到的問題。
????頭文件和lib,放在rar包吧,給大家一個實現后的參考。如果,發現有什么問題,可以隨時和我聯系。或者,您有更好的想法,并且愿意和我分享,那真是舉目明月,盡展抒懷。假如,您對有些語法,比如explicit不明,那么,建議您先看看有關C++的語法或者找您周圍的高手,讓他們洗腦一番。:}
謝謝閱讀,好就此打住。

配套程序下載:http://dev.gameres.com/Program/Other/thread.rar

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久久综合网| 欧美日韩在线高清| 免费亚洲一区二区| 国产美女精品人人做人人爽| 一区二区三区回区在观看免费视频| 久久美女性网| 欧美综合国产| 国产最新精品精品你懂的| 欧美一区激情| 欧美亚洲日本国产| 国产亚洲成精品久久| 久久精品国产99精品国产亚洲性色| 一区二区高清| 国产精品白丝av嫩草影院| 亚洲影视九九影院在线观看| 亚洲性感美女99在线| 亚洲人成人77777线观看| 久久深夜福利| 欧美中文字幕不卡| 激情久久久久| 亚洲成色777777在线观看影院| 男女视频一区二区| aⅴ色国产欧美| 一区二区三区日韩精品| 国产精品久久久亚洲一区| 性色av香蕉一区二区| 欧美在线观看视频| 亚洲第一色中文字幕| 亚洲国产精品久久久久秋霞蜜臀| 免费成人黄色av| 亚洲一区不卡| 西瓜成人精品人成网站| 精品动漫一区二区| 亚洲精品一区二区三区蜜桃久| 欧美日韩一区二区三区高清| 亚洲欧美激情在线视频| 欧美在线一二三| 99精品99久久久久久宅男| 亚洲午夜一区二区| 亚洲第一区色| 亚洲综合色自拍一区| 激情成人在线视频| 亚洲美女一区| 国内精品久久久久影院优| 亚洲国产精品v| 国产欧美一区二区精品性色| 欧美刺激午夜性久久久久久久| 欧美午夜大胆人体| 美女图片一区二区| 国产精品老女人精品视频| 欧美电影免费| 国产亚洲精品久久久久久| 亚洲破处大片| 精品福利电影| 亚洲一区二区日本| 日韩午夜精品视频| 久久精品国产亚洲精品| 亚洲综合色婷婷| 免费一级欧美片在线播放| 久久成人av少妇免费| 欧美人与禽猛交乱配| 免费成人高清视频| 国产精品视频yy9099| 亚洲精品美女91| 亚洲高清自拍| 欧美在线啊v| 亚洲欧美国产高清va在线播| 欧美高清在线播放| 裸体歌舞表演一区二区| 国产欧美日韩视频一区二区| 亚洲美女中文字幕| 亚洲人成人一区二区在线观看| 欧美一区国产二区| 亚洲欧美经典视频| 国产精品国产自产拍高清av王其| 亚洲欧洲一区二区三区在线观看| 在线播放豆国产99亚洲| 欧美在线一二三| 久久国内精品视频| 国产热re99久久6国产精品| 亚洲欧美国产精品桃花| 亚洲人体大胆视频| 欧美不卡在线视频| 国产一区二区三区四区老人| 亚洲一区国产| 午夜精品福利电影| 国产精品视频久久久| 亚洲一区二区三| 欧美一级日韩一级| 国产亚洲激情| 久久99伊人| 麻豆成人小视频| 亚洲经典在线| 欧美福利在线| 亚洲精品美女久久久久| 亚洲图片在线| 国产精品高精视频免费| 亚洲午夜久久久久久久久电影网| 亚洲欧美999| 国产亚洲精品一区二区| 久久精品99| 亚洲电影中文字幕| 日韩手机在线导航| 欧美色图一区二区三区| 亚洲午夜激情免费视频| 久久国内精品自在自线400部| 狠狠色狠狠色综合人人| 老牛嫩草一区二区三区日本| 亚洲国产精品成人综合| 亚洲一区视频在线观看视频| 国产精品五月天| 久久亚洲精品视频| 亚洲精品乱码| 欧美在线黄色| 亚洲高清久久久| 欧美日韩中文| 久久激情婷婷| 99精品欧美| 久热精品在线| 一区二区三区视频在线播放| 国产日本欧美一区二区| 蜜桃av一区| 亚洲一区日韩在线| 欧美成人免费全部| 亚洲免费在线看| 一区二区视频免费在线观看| 欧美日韩国产123| 欧美在线国产精品| 亚洲人成毛片在线播放女女| 欧美专区日韩视频| 日韩视频亚洲视频| 国产亚洲激情| 欧美午夜精品一区| 久久综合九色综合欧美狠狠| 亚洲午夜精品久久久久久浪潮| 欧美国产日本韩| 久久精品国产v日韩v亚洲| 99视频精品全国免费| 国内一区二区三区在线视频| 欧美视频观看一区| 欧美国产日韩一区二区| 久久大逼视频| 亚洲天堂偷拍| 亚洲区免费影片| 欧美国产精品人人做人人爱| 欧美一区二区三区男人的天堂| 99精品99久久久久久宅男| 国内精品久久久久影院薰衣草| 国产精品家教| 欧美日韩国产综合视频在线| 蜜桃av一区二区三区| 久久久999精品| 午夜精品视频在线观看一区二区| 亚洲另类黄色| 亚洲激情av在线| 一区二区三区国产在线观看| 久久久精品免费视频| 欧美精选午夜久久久乱码6080| 午夜精品剧场| 亚洲午夜伦理| 一区二区冒白浆视频| 91久久久久| 欧美激情亚洲自拍| 久久中文欧美| 久久久久久网| 久久久久久久波多野高潮日日| 亚洲自拍高清| 亚洲色在线视频| 宅男噜噜噜66国产日韩在线观看| 亚洲欧洲日本一区二区三区| 影视先锋久久| 在线播放日韩专区| 在线精品观看| 亚洲黄色av| 亚洲毛片在线观看.| 日韩视频亚洲视频| 中国亚洲黄色| 亚洲在线国产日韩欧美| 午夜精品久久| 欧美在线播放高清精品| 久久精品国产欧美激情| 久久精品国产免费看久久精品| 久久精品视频在线播放| 久久亚洲精品一区| 欧美成人激情视频免费观看| 亚洲第一视频网站| 亚洲精品免费网站| 这里是久久伊人| 午夜精品久久久久久久蜜桃app | 欧美日韩亚洲一区二区三区在线观看| 欧美91福利在线观看| 女生裸体视频一区二区三区| 欧美成人一区二区| 欧美视频一二三区| 国产日本欧美在线观看| 影视先锋久久| 一区二区三区精品视频| 欧美一区二区免费观在线| 久久五月激情| 亚洲国产一区二区三区青草影视|