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

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

循環原子鎖

In t e r l o c k e d E x c h a n g e和I n t e r l o c k e d E x c h a n g e P o i n t e r能夠以原子操作方式用第二個參數中傳遞的值來取代第一個參數中傳遞的當前值。如果是3 2位應用程序,兩個函數都能用另一個3 2位值取代一個3 2位值。但是,如果是個6 4位應用程序,那么I n t e r l o c k e d E x c h a n g e能夠取代一個3 2位值,而I n t e r l o c k e d E x c h a n g e P o i n t e r則取代6 4位值。兩個函數都返回原始值。當實現一個循環鎖時,I n t e r l o c k e d E x c h a n g e是非常有用的:

// Global variable indicating whether a shared resource is in use or not
BOOL g_fResourceInUse = FALSE;
...

void Func1() 
{
   //Wait to access the resource.
   while(InterlockedExchange(&g_fResourceInUse, TRUE) == TRUE)
      Sleep(0);

   //Access the resource.

   ...

   //We no longer need to access the resource.
   InterlockedExchange(&g_fResourceInUse, FALSE);
}

w h i l e循環是循環運行的,它將g _ f R e s o u r c e I n U s e中的值改為T R U E,并查看它的前一個值,以了解它是否是T R U E。如果這個值原先是FA L S E,那么該資源并沒有在使用,而是調用線程將它設置為在用狀態并退出該循環。如果前一個值是T R U E,那么資源正在被另一個線程使用,w h i l e循環將繼續循環運行。

如果另一個線程要執行類似的代碼,它將在w h i l e循環中運行,直到g _ f R e s o u r c e I n U s e重新改為FA L S E。調用函數結尾處的I n t e r l o c k e d E x c h a n g e,可顯示應該如何將g _ f R e s o u r c e I n U s e重新設置為FA L S E。

當使用這個方法時必須格外小心,因為循環鎖會浪費C P U時間。C P U必須不斷地比較兩個值,直到一個值由于另一個線程而“奇妙地”改變為止。另外,該代碼假定使用循環鎖的所有線程都以相同的優先級等級運行。也可以把執行循環鎖的線程的優先級提高功能禁用(通過調用S e t P r o c e s s P r i o r i t y B o o s t或s e t T h r e a d P r i o r i t y B o o s t函數來實現之)

此外,應該保證將循環鎖變量和循環鎖保護的數據維護在不同的高速緩存行中(本章后面部分介紹)。如果循環鎖變量與數據共享相同的高速緩存行,那么使用該資源的C P U將與試圖訪問該資源的任何C P U爭用高速緩存行。

應該避免在單個C P U計算機上使用循環鎖。如果一個線程正在循環運行,它就會浪費前一個C P U時間,這將防止另一個線程修改該值。我在上面的w h i l e循環中使用了S l e e p ,從而在某種程度上解決了浪費C P U時間的問題。如果使用S l e e p,你可能想睡眠一個隨機時間量;每次請求訪問該資源均被拒絕時,你可能想進一步延長睡眠時間。這可以防止線程浪費C P U時間。根據情況,最好是全部刪除對S l e e p的調用?;蛘呤褂脤 w i t c h To T h r e a d(Windows 98中沒有這個函數)的調用來取代它。勇于試驗和不斷糾正錯誤,是學習的最好方法。

循環鎖假定,受保護的資源總是被訪問較短的時間。這使它能夠更加有效地循環運行,然后轉為內核方式并進入等待狀態。許多編程人員循環運行一定的次數(比如4 0 0次),如果對資源的訪問仍然被拒絕,那么該線程就轉為內核方式,在這種方式下,它要等待(不消耗C P U時間),直到該資源變為可供使用為止。這就是關鍵部分實現的方法。

循環鎖在多處理器計算機上非常有用,因為當一個線程循環運行的時候,另一個線程可以在另一個C P U上運行。但是,即使在這種情況下,也必須小心。不應該讓線程循環運行太長的時間,也不能浪費更多的C P U時間。本章后面將進一步介紹循環鎖。

posted on 2008-04-16 15:02 肥仔 閱讀(1307) 評論(1)  編輯 收藏 引用 所屬分類: Windows開發

評論

# re: 循環原子鎖[未登錄]  回復  更多評論   

問下為什么要刪除sleep,改用SwitchToThread,不擔心他對cpu的占用嗎?
2013-01-15 15:06 | Bin
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            午夜久久电影网| 精品成人a区在线观看| 免费在线观看精品| 美乳少妇欧美精品| 国产精品视频在线观看| 久久午夜精品一区二区| 欧美国产第二页| 尤物九九久久国产精品的特点| 日韩一区二区福利| 久久久精品国产免大香伊 | 欧美成人免费小视频| 亚洲一区精品电影| 欧美一区二区三区在线观看| 国产亚洲激情视频在线| 亚洲天堂男人| 久久xxxx| 中国女人久久久| 亚洲女爱视频在线| 玖玖视频精品| 一区二区三区四区五区视频| 欧美成人精品一区二区三区| 欧美人与禽猛交乱配视频| 亚洲靠逼com| 小处雏高清一区二区三区| 久久免费精品视频| 日韩亚洲精品视频| 国产一区二区成人| 亚洲综合精品自拍| 亚洲精品自在久久| 久久久国产亚洲精品| 99精品热视频| 欧美黄色aa电影| 午夜精品久久久久久久99水蜜桃 | 最近看过的日韩成人| 欧美成年人视频网站欧美| 午夜精品久久久久久久99樱桃| 国产婷婷色一区二区三区| 亚洲视频网在线直播| 亚洲精选91| 亚洲国产精品va在线观看黑人 | 国内揄拍国内精品久久| 亚洲视频欧美视频| 亚洲视频精选在线| 一本色道久久| 亚洲直播在线一区| 日韩午夜在线播放| 亚洲精品视频免费在线观看| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲欧洲日产国码二区| 国产一区二区在线观看免费播放 | 久久久久久亚洲精品杨幂换脸 | 久久www成人_看片免费不卡| 欧美日韩国产高清| 欧美日韩大陆在线| 久久综合成人精品亚洲另类欧美| 欧美日韩综合视频| 亚洲欧美韩国| 国产三级欧美三级日产三级99| 99视频有精品| 欧美在线观看天堂一区二区三区| 国产人成精品一区二区三| 亚洲国产成人av好男人在线观看| 久久噜噜噜精品国产亚洲综合| 久久蜜臀精品av| 欧美韩国日本一区| 老司机精品导航| 亚洲视频每日更新| 亚洲成色www久久网站| 亚洲国产精品成人一区二区| 亚洲视频 欧洲视频| 亚洲一二三区在线| 女人香蕉久久**毛片精品| 欧美调教视频| 亚洲精品1区2区| 久久精品国产91精品亚洲| 国产亚洲二区| 亚洲永久精品国产| 国产精品一区二区你懂得| 亚洲精品乱码久久久久久| 美女黄毛**国产精品啪啪| 亚洲精品国产精品国自产观看浪潮 | 欧美好骚综合网| 亚洲欧美中文日韩在线| 一区二区三区产品免费精品久久75 | 性色av一区二区三区红粉影视| 欧美1区2区| 久久久一区二区三区| 国产欧美精品日韩精品| 欧美精品免费在线| 亚洲视频电影在线| 国产欧美日韩一区二区三区在线| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲人成人一区二区在线观看| 日韩视频二区| 亚洲国产日韩一区| 亚洲精品视频中文字幕| 一区二区高清在线观看| 亚洲精品国产精品国自产观看| 亚洲自拍高清| 在线观看91精品国产入口| 亚洲欧洲日本一区二区三区| 亚洲特黄一级片| 国产嫩草影院久久久久| 欧美成人综合一区| 欧美日韩国产一区| 国产情人节一区| 亚洲视频在线二区| 欧美成人高清视频| 亚洲欧洲免费视频| 久久se精品一区二区| 午夜日韩福利| 一本色道久久99精品综合| 亚洲一区二区三区高清| 欧美在线一级va免费观看| 91久久久久久国产精品| 欧美在线观看一区二区| 欧美国产国产综合| 久久久久欧美精品| 国产欧美日韩综合一区在线观看 | 久久九九电影| 国产精品wwwwww| 久久综合中文色婷婷| 亚洲欧美国产一区二区三区| 中文国产成人精品| 国产啪精品视频| 国产综合久久久久久| 午夜在线一区| 国产一区日韩一区| 久久亚洲精品欧美| 欧美福利专区| 亚洲欧美www| 国产美女高潮久久白浆| 久久福利电影| 欧美激情综合亚洲一二区| 亚洲人永久免费| 欧美一级理论片| 亚洲色无码播放| 久久女同互慰一区二区三区| 久久久免费观看视频| 亚洲精品三级| 亚洲在线观看视频| 久久视频在线看| 亚洲黄色小视频| 欧美日韩国产一区二区三区地区 | 亚洲网站在线播放| 国产亚洲欧美日韩精品| 国产综合视频在线观看| 亚洲伦理在线观看| 美国十次成人| 久久久久久久综合日本| 1024国产精品| 亚洲午夜电影网| 亚洲精品中文字幕在线| 欧美jizz19hd性欧美| 欧美一区日韩一区| 亚洲私人影院在线观看| 欧美在线日韩精品| 国产一区二区三区自拍| 久久久高清一区二区三区| 亚洲天堂激情| 一本大道av伊人久久综合| 国产一区在线免费观看| 亚洲成色777777在线观看影院| 欧美一区二区三区精品电影| 国产伦精品一区| 精品成人国产| 欧美一级淫片aaaaaaa视频| 亚洲高清一二三区| 欧美黄色aa电影| 一区二区三区视频在线观看 | 亚洲欧美成人一区二区在线电影| 亚洲激情自拍| 亚洲一区二区日本| 欧美一区二区三区免费大片| 亚洲国产精品一区制服丝袜| 尤物精品在线| 免费在线日韩av| 狂野欧美一区| 性色av一区二区怡红| 国产一区二区三区黄视频| 国产欧美一区二区视频| 精品动漫一区二区| 99精品国产在热久久| 久久先锋资源| 亚洲一区二区三区三| 欧美一区二区三区在线观看| 欧美精品一二三| 亚洲丁香婷深爱综合| 性视频1819p久久| aa级大片欧美三级| 久久久国产一区二区三区| 国产精品毛片a∨一区二区三区|国| 国产一区二区中文| 国产精品无码永久免费888| 久久久久久久成人| 久久―日本道色综合久久| 亚洲色图在线视频| 国产欧美精品一区aⅴ影院| av成人国产| 亚洲大胆女人|