• <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>

            MyMSDN

            MyMSDN記錄開發新知道

            關于線程同步的一些總結(用戶模式/內核模式)

            自旋鎖同步

            1. 一般是為了內核態下各個派遣函數之間做同步作用的。
            2. 原理是(單CPU)將IRQL從軟件中斷提升到硬件中斷。PASSIVE_LEVEL->DISPATCH_LEVEL。因為在DISPATCH_LEVEL中是不會出現線程切換的(只有高級別能打斷低級別,而低級別不能打斷高級別)。
            3. 因為分頁內存將導致如果線程切換的時候會引起分頁數據交換,數據交換是通過引發頁故障來實現的,而頁故障是不允許出現在DISPATCH_LEVEL中的,否則將引起系統崩潰(PASSIVE_LEVEL則允許)。驅動程序的StartIO例程、DPC例程、中斷服務例程都運行在DISPATCH_LEVEL或者更高的IRQL。因此這些例程不能使用分頁內存,否則將導致系統崩潰。
            4. 自旋鎖在不同IRP之間同步的時候,則需要放在DeviceExtension中傳遞。

            互鎖

            1. 類似于number++; //匯編后將不止一條語句,非原子操作number--; //同上因為語句會變成多句,在線程切換的時候,兩個線程下的該例程將會交織在一起執行,導致錯誤。可以:
              先加鎖
              number++;
              解鎖
              再加鎖
              number--;
              解鎖
              來實現兩句話的同步(按指定順序執行,而不受到線程切換的影響)加鎖解鎖可以使用自旋鎖
            2. 在系統中提供了Interlocked***/ExInterlocked***實現

            信號燈同步

            1. 線程1關閉信號燈,以至于使用Wait****的時候,當前線程處于暫停狀態。
            2. 線程2的作用就是在執行結束后,點亮信號燈(增加計數器)。當線程切換回來的時候,線程1就因為計數器不是0而使信號燈處于激活狀態,從而繼續執行線程1。

            事件的同步

            (不能遞歸獲取互斥體)
            1. 主線程在輔助線程上設置了事件,如果不使用Wait**等待事件返回,則主線程可能直接執行完畢了,而導致輔助線程還在執行。
            2. 使用Wait****可以使主線程等待事件執行完成。

            互斥體同步

            (允許遞歸獲取互斥體(得到互斥體的線程還可以再次獲得這個互斥體,或者說互斥體對于已經獲得互斥體的線程不產生“互斥”關系))
            1. 創建一個互斥體對象,將互斥體對象傳遞給多個線程。
            2. 在每個線程操作的步驟中,調用Wait*****,如果互斥體處于激活(內部維護一個計數器),則繼續執行后續代碼,并在調用結束后恢復互斥體Release****,這樣當別的線程試圖使用互斥體后面的代碼的時候,因為互斥體狀態未激活,則無法繼續執行代碼。

            快速互斥體同步

            1. 與互斥體同步類似,唯一區別是不允許遞歸獲取互斥體

            posted on 2009-12-26 05:53 volnet 閱讀(2085) 評論(2)  編輯 收藏 引用 所屬分類: 知識庫(KnowledgeLibrary)C/C++

            評論

            # re: 關于線程同步的一些總結(用戶模式/內核模式)[未登錄] 2011-05-09 10:22 harryshayne

            垃圾  回復  更多評論   

            # re: 關于線程同步的一些總結(用戶模式/內核模式) 2011-05-10 08:35 憤青

            @harryshayne
            你蠻無聊的  回復  更多評論   

            特殊功能
             
            狠狠狠色丁香婷婷综合久久俺| 久久精品二区| 久久国产热精品波多野结衣AV| 99久久免费国产特黄| 久久精品夜色噜噜亚洲A∨| 久久精品综合网| 久久A级毛片免费观看| 久久无码AV中文出轨人妻 | 久久天天躁狠狠躁夜夜96流白浆| 国内精品久久久久伊人av| 久久亚洲国产成人影院网站| 日韩人妻无码精品久久久不卡 | 久久精品中文字幕一区| 久久AV无码精品人妻糸列| 狠狠狠色丁香婷婷综合久久五月| 性做久久久久久久久久久| 久久青青草原综合伊人| 无码人妻精品一区二区三区久久| 丁香五月综合久久激情| 久久综合久久自在自线精品自| 久久男人AV资源网站| 中文字幕亚洲综合久久2| 麻豆AV一区二区三区久久 | 国内精品久久久久影院免费| 亚洲精品乱码久久久久久蜜桃不卡| 精品久久人人爽天天玩人人妻 | 久久国产免费直播| 亚洲国产成人久久精品99| 中文字幕亚洲综合久久| 国产精品美女久久久久久2018| 囯产精品久久久久久久久蜜桃| 欧美麻豆久久久久久中文| 久久精品国产精品亚洲下载| 久久综合狠狠综合久久激情 | 久久精品水蜜桃av综合天堂| 久久水蜜桃亚洲av无码精品麻豆| 狠狠色丁香久久婷婷综合| 色偷偷偷久久伊人大杳蕉| 亚洲中文字幕无码久久2020 | 亚洲乱亚洲乱淫久久| 999久久久国产精品|