標題: 淺談臨界區(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忘忧草
|
国产情侣激情
|
午夜羞羞|
色一阁
|