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

CppExplore

一切像霧像雨又像風(fēng)

  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  29 隨筆 :: 0 文章 :: 280 評論 :: 0 Trackbacks

作者:CppExplore  http://m.shnenglu.com/CppExplore/http://blog.csdn.net/cppexplore同步發(fā)布

一 semaphore機(jī)制
古老的信號量機(jī)制,80年代初,從System V體系中產(chǎn)生,稱為System v信號量。90年代,Posix標(biāo)準(zhǔn)確立,其中的信號量稱為posix信號量。當(dāng)前l(fā)inux系統(tǒng)支持這兩種信號量(man semget/ man sem_post)。System v信號量為有名信號量,可以用于多進(jìn)程間的互斥同步。posix信號量分有名和無名兩種,當(dāng)前l(fā)inux只支持無名信號量,可以用于多線程之間的互斥同步,通過共享內(nèi)存也可以用于多進(jìn)程之間。
信號量屬于內(nèi)核級別的互斥同步機(jī)制,相關(guān)調(diào)用總是陷入內(nèi)核態(tài),屬于功能強(qiáng)大/重量級的實現(xiàn)。

二 spinlock機(jī)制
多核SMP的cpu流行后,出現(xiàn)的新的互斥同步機(jī)制。spinlock實現(xiàn)原理為用戶態(tài)循環(huán)嘗試機(jī)制,不陷入內(nèi)核態(tài)進(jìn)行線程切換。spinlock的原子性通過CAS(CompareAndSwap)原語實現(xiàn)。使用spinlock時,應(yīng)該保證保護(hù)區(qū)間內(nèi)代碼執(zhí)行迅速,不應(yīng)該存在io等耗時操作。
多核系統(tǒng)下,針對可快速執(zhí)行的保護(hù)區(qū)使用用戶態(tài)循環(huán)嘗試機(jī)制,可以保證執(zhí)行線程不需要引起上下文切換即可快速執(zhí)行通過,這種機(jī)制也被形象的稱為lock-free機(jī)制。我們可以這樣理解:lock-free機(jī)制即為循環(huán)嘗試,spinlock是它的具體實現(xiàn)。

spinlock的實現(xiàn)有多種,常見的有pthread_spin_lock,該spinlock無限制循環(huán)嘗試,在多核環(huán)境下并且保護(hù)區(qū)代碼執(zhí)行迅速時,執(zhí)行線程很快可以拿到鎖,但當(dāng)單核環(huán)境或者保護(hù)區(qū)代碼執(zhí)行慢速時,則會耗盡該線程擁有的時間片之后交出cpu,造成cpu的浪費(fèi)。另一常見的spinlock是boost智能指針中的實現(xiàn),進(jìn)行3次無間斷的循環(huán)CAS原語判斷,之后若再次失敗,則調(diào)用sleep族函數(shù),交出cpu執(zhí)行權(quán),待再次分配到cpu時間片后繼續(xù)進(jìn)行CAS原語判斷操作。


三 mutex機(jī)制
mutex屬于os之上的再次封裝實現(xiàn)。在linux2.6內(nèi)核上,線程庫為nptl,其中的mutex基于futex機(jī)制實現(xiàn),它的實現(xiàn)原理,簡單說就是spinlock+semaphore,首先使用spinlock嘗試,可以拿到鎖則直接向下執(zhí)行,拿不到鎖則執(zhí)行semaphore機(jī)制,陷入內(nèi)核態(tài),進(jìn)入線程切換。
在多核環(huán)境下,當(dāng)mutex保護(hù)的代碼段內(nèi)無io操作,執(zhí)行很快時,大多數(shù)情況下通過spinlock都可拿到鎖,不需要陷入內(nèi)核態(tài)。


四 為智能指針正名(boost)
智能指針的引用計數(shù)僅僅為一個整型變量的增減,屬于執(zhí)行迅速的典型,使用spinlock機(jī)制保護(hù),最新boost版本中僅僅是spinlock,而非mutex。從性能角度說,使用智能指針的現(xiàn)象是cpu略微上升(循環(huán)嘗試導(dǎo)致),而并發(fā)量/單個請求的響應(yīng)時間并無明顯影響。proactor機(jī)制實現(xiàn)的網(wǎng)絡(luò)層,智能指針基本無法繞過,刻意避免帶來的只能是丑陋的代碼和維護(hù)量的上升。但線程之間盡量避免傳遞指針(智能指針),通過傳遞id等代替。
智能指針有它使用的場景,不能濫用,也不能刻意避免。

posted on 2010-08-28 18:22 cppexplore 閱讀(4341) 評論(12)  編輯 收藏 引用

評論

# re: 【原創(chuàng)】從同步互斥機(jī)制到智能指針使用成本 2010-08-31 02:08 trueOO
這才叫文章啊。。看看首頁上都是些什么玩意啊  回復(fù)  更多評論
  

# re: 【原創(chuàng)】從同步互斥機(jī)制到智能指針使用成本 [未登錄] 2010-09-01 19:03 Sea
同意
  回復(fù)  更多評論
  

# re: 【原創(chuàng)】從同步互斥機(jī)制到智能指針使用成本 2010-09-02 16:44 金慶
"線程之間盡量避免傳遞指針"? 能說明一下嗎?傳id和傳指針有什么區(qū)別?  回復(fù)  更多評論
  

# re: 【原創(chuàng)】從同步互斥機(jī)制到智能指針使用成本 [未登錄] 2010-09-04 11:16 cppexplore
@金慶
線程之間傳遞指針,基本就是傳遞智能指針。
傳遞id代替就是為了避免智能指針  回復(fù)  更多評論
  

# re: 【原創(chuàng)】從同步互斥機(jī)制到智能指針使用成本 2010-09-10 17:15 Markin
博主真乃超級技術(shù)達(dá)人,期待更多更好的技術(shù)貼,學(xué)習(xí)ing  回復(fù)  更多評論
  

# re: 【原創(chuàng)】從同步互斥機(jī)制到智能指針使用成本 2010-09-25 18:08 xwb
博主威武! 望塵莫及...@Markin
  回復(fù)  更多評論
  

# re: 【原創(chuàng)】從同步互斥機(jī)制到智能指針使用成本 [未登錄] 2010-12-24 15:11 vincent
膜了個拜 啊  回復(fù)  更多評論
  

# re: 【原創(chuàng)】從同步互斥機(jī)制到智能指針使用成本 2011-03-24 14:50 egmkang
據(jù)說mutex在沒有io的時候也是通過spinlock來實現(xiàn)互斥的.  回復(fù)  更多評論
  

# re: 【原創(chuàng)】從同步互斥機(jī)制到智能指針使用成本 2011-03-24 14:51 egmkang
當(dāng)我沒說,我轉(zhuǎn)了一圈轉(zhuǎn)回來了..  回復(fù)  更多評論
  

# re: 【原創(chuàng)】從同步互斥機(jī)制到智能指針使用成本 2011-03-28 12:45 cppexplore
@egmkang
:)  回復(fù)  更多評論
  

# re: 【原創(chuàng)】從同步互斥機(jī)制到智能指針使用成本 2011-06-05 08:27 Batiliu
引用:proactor機(jī)制實現(xiàn)的網(wǎng)絡(luò)層,智能指針基本無法繞過,刻意避免帶來的只能是丑陋的代碼和維護(hù)量的上升。

LZ強(qiáng)人。本人在IOCP基礎(chǔ)上實現(xiàn)proactorIO模型時,被資源釋放困擾了N久,最后還是智能指針解的困,但現(xiàn)在還不夠完美。

其他LZ談?wù)勏嚓P(guān)的具體方案或心得,epoll也好iocp也好。  回復(fù)  更多評論
  

# re: 【原創(chuàng)】從同步互斥機(jī)制到智能指針使用成本 [未登錄] 2011-07-14 22:25 kevin
@金慶
指針指向的內(nèi)存地址可能無效。  回復(fù)  更多評論
  


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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国产精品久久久久老师| 亚洲国产一区二区三区高清| 欧美大片免费观看在线观看网站推荐| 欧美成人免费一级人片100| 免费在线成人av| 亚洲精品综合精品自拍| 亚洲深夜影院| 老司机精品视频一区二区三区| 奶水喷射视频一区| 欧美日韩久久不卡| 国产无一区二区| 亚洲高清自拍| 亚洲午夜一级| 久久久999国产| 亚洲欧洲精品一区二区三区| 亚洲午夜激情免费视频| 久久久99国产精品免费| 欧美日韩一级大片网址| 国产亚洲精品资源在线26u| 亚洲欧洲在线看| 性欧美大战久久久久久久久| 欧美大学生性色视频| 中日韩视频在线观看| 久久久久久高潮国产精品视| 欧美日本一区二区高清播放视频| 国产精品永久免费在线| 亚洲大片一区二区三区| 亚洲一区二区三区激情| 欧美成人亚洲成人| 欧美午夜不卡| 久久夜色精品国产| 欧美一区二区在线视频| 午夜免费久久久久| 亚洲国产精品女人久久久| 99在线热播精品免费| 久久国产手机看片| 国产精品美女主播在线观看纯欲| 国产一区二区三区丝袜| 亚洲一区精品电影| 91久久久久久国产精品| 久久精品国产2020观看福利| 国产精品青草综合久久久久99| 日韩午夜免费视频| 麻豆av一区二区三区久久| 这里是久久伊人| 欧美紧缚bdsm在线视频| 亚洲日本中文字幕免费在线不卡| 久久久久在线观看| 午夜精品一区二区在线观看| 国产精品欧美日韩久久| 夜夜嗨网站十八久久| 亚洲国产第一| 欧美成人免费在线视频| 1024亚洲| 欧美成年人视频| 免费观看国产成人| 亚洲靠逼com| 亚洲日本在线视频观看| 欧美了一区在线观看| 亚洲靠逼com| 亚洲国产成人不卡| 欧美国产成人在线| 亚洲久久一区| 一本久道久久久| 国产精品久久久久久亚洲毛片| 一区二区三区鲁丝不卡| 亚洲午夜精品网| 国产日韩精品在线播放| 久久精品亚洲一区二区三区浴池| 欧美一级免费视频| …久久精品99久久香蕉国产 | 久久精品国产欧美亚洲人人爽| 国产精品区二区三区日本| 亚洲主播在线播放| 欧美在线www| 亚洲激情综合| 99视频+国产日韩欧美| 国产欧美 在线欧美| 另类激情亚洲| 欧美另类综合| 欧美在线观看网站| 巨乳诱惑日韩免费av| 亚洲视频第一页| 久久精品成人| 一区二区三区.www| 亚洲欧美国产制服动漫| 亚洲自拍偷拍网址| 尤物yw午夜国产精品视频| 亚洲精选在线观看| 国产欧美一级| 亚洲蜜桃精久久久久久久| 国产日韩一区二区| 亚洲人成网在线播放| 国产精品午夜av在线| 欧美国产精品人人做人人爱| 国产精品久久久久久一区二区三区 | 在线欧美日韩精品| 在线综合+亚洲+欧美中文字幕| 国内精品嫩模av私拍在线观看| 亚洲欧洲三级电影| 极品少妇一区二区| 亚洲尤物在线视频观看| 99国产欧美久久久精品| 欧美在线网址| 欧美亚洲综合网| 欧美三级韩国三级日本三斤| 欧美www视频| 国内精品视频久久| 亚洲欧美激情视频在线观看一区二区三区| 亚洲经典在线| 久久精品理论片| 性亚洲最疯狂xxxx高清| 欧美视频一区二区三区…| 欧美+亚洲+精品+三区| 国产一区二区高清| 亚洲砖区区免费| 亚洲视频欧美在线| 欧美精品日韩一本| 亚洲国产成人av| 亚洲国产黄色| 久热精品视频在线观看一区| 久久九九国产| 国产视频自拍一区| 亚洲欧美日韩国产一区| 亚洲综合国产激情另类一区| 欧美理论电影在线观看| 亚洲国产精品视频一区| 亚洲欧洲一级| 欧美久久九九| 中国av一区| 午夜精品短视频| 国产精品久久久久久av下载红粉| 亚洲精品综合精品自拍| 一区二区激情视频| 欧美视频在线观看免费| 中文日韩在线视频| 午夜精品久久久久久久99水蜜桃| 欧美视频网址| 亚洲素人一区二区| 欧美在线视频免费观看| 国产午夜精品久久久久久久| 欧美制服丝袜| 亚洲国产精品久久久久秋霞蜜臀 | 欧美一区二区三区在线看| 国产精品羞羞答答xxdd| 亚洲天堂成人| 久久久久久久国产| 激情av一区| 欧美国产亚洲视频| 亚洲深夜福利在线| 国产精品久久亚洲7777| 午夜精品久久久久影视| 久久综合伊人77777尤物| 激情五月婷婷综合| 欧美精品久久久久久久免费观看| 99精品国产在热久久下载| 性色一区二区| 亚洲国产91精品在线观看| 欧美国产国产综合| 亚洲欧美激情视频在线观看一区二区三区| 久久成人免费日本黄色| 1024国产精品| 国产精品久久久久久久久免费桃花| 亚洲在线一区二区| 蜜臀a∨国产成人精品| 在线视频精品| 狠狠色伊人亚洲综合成人| 欧美日本免费一区二区三区| 欧美在线你懂的| 一本色道久久综合亚洲精品不| 久久精品国产欧美激情| 亚洲精品看片| 国产亚洲视频在线| 欧美噜噜久久久xxx| 午夜精品一区二区三区在线| 91久久精品日日躁夜夜躁国产| 欧美在线亚洲| aa成人免费视频| 一区二区自拍| 国产伦精品一区二区三区视频孕妇| 久久国产天堂福利天堂| 亚洲天堂男人| 亚洲人成网站影音先锋播放| 久久久综合激的五月天| 亚洲一区二区精品视频| 亚洲成色777777女色窝| 国产乱码精品| 国产精品久久久久三级| 欧美日韩免费高清| 欧美激情2020午夜免费观看| 久久精品一区中文字幕| 亚洲永久免费视频| 中国成人亚色综合网站| 99视频一区二区| 亚洲精品资源美女情侣酒店| 蜜桃av噜噜一区| 久久亚裔精品欧美|