久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 淺談臨界區(qū) [打印本頁]

作者: liuyang    時間: 2012-1-11 20:34
標題: 淺談臨界區(qū)
     我查找了資料,然后按自己的理解,吧它寫下來,如果新手看見了也可以了解下。 關于多線程同步有很多辦法,像臨界區(qū),互斥對象,事件等等 ,臨界區(qū)不屬于內核對象其他的屬于內核對象,臨界區(qū)只能應許一個線程進入臨界區(qū),其他線程在發(fā)現臨界區(qū)被占,就會讓出CPU而非等待時間片再次切換,這就 是區(qū)別。但是臨界區(qū)同步很快,所以盡量在需要的地方執(zhí)行時間短的代碼段加上。它的一般用法

//申明臨界區(qū)變量

CRITICAL_SECTION cSec;

//初始化臨界區(qū)變量

InitializeCriticalSection(&cSec);

//進入臨界區(qū)
EnterCriticalSection(&cSec);

LeaveCriticalSection(&cSec);

注意:凡是需要同步的線程都需要加上 EnterCriticalSection(&cSec);LeaveCriticalSection(&cSec);  因為其他線程需要在EnterCriticalSection()后才能獲知是否有線程占用臨界區(qū),如果被占讓出CPU,進入和離開臨界區(qū)必須是一起的, 否則線程就一直被一個線程占用。還有值得注意的是這個缺點是,一個進入臨界區(qū)的線程如果假死的話,那么這程序蕩掉了,所以有時候還要做點處理,至于怎么做 才查下資料吧。

  像其他內核對象,和這邊原理也差不多,先把一個對象給一個線程,其他線程必須等待那個對象是否已經釋放,否則線程就在那占著CPU空等。




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 人碰人操 | 欧美国产日韩在线观看 | 国产乱性 | 久久久久国产精品 | 亚洲精品白浆高清久久久久久 | 羞羞视频网站在线观看 | 亚洲精品免费视频 | 国产精品视频在线播放 | 日本精品视频一区二区 | 亚洲精品在线视频 | www.精品一区 | 久久久精品一区二区三区 | 日本三级电影在线观看视频 | 欧美一级片在线看 | 久久久久久九九九九 | 青青久视频 | 新超碰97 | 精品麻豆剧传媒av国产九九九 | 日韩免费 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 91免费看片| 中文字幕99 | 免费一级片 | 少妇一级淫片免费放播放 | 久久久久国产一区二区三区 | 在线观看成年人视频 | 久久伊人青青草 | 欧美大片一区 | 日本一区二区高清不卡 | 中国91av| 国产高潮av | 免费黄色的网站 | 在线资源视频 | 国产原创在线观看 | 精品视频成人 | 日韩高清中文字幕 | 亚洲一区二区三区在线播放 | 久久午夜国产精品www忘忧草 | 国产情侣激情 | 午夜羞羞| 色一阁 |