日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

用户方式中线程的同步——Windows核心编程学习手札之八

發布時間:2025/4/16 windows 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用户方式中线程的同步——Windows核心编程学习手札之八 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用戶方式中線程的同步

——Windows核心編程學習手札之八

系統中所有線程都必須擁有對各種系統資源的訪問權,這些資源包括內存堆棧、串口、文件、窗口和許多其他資源。如果一個線程需要獨占對資源的訪問權,那么其他線程就無法完成它們的工作;另一方面,也不能讓任何一個線程在任何時間都能訪問所有的資源。線程在兩種情況下需要互相進行通信:1)當有多個線程訪問共享資源而不使資源被破壞時;2)當一個線程需要將某個任務已經完成的情況通知另外一個或多個線程時。

線程同步問題在很大程度上與原子訪問有關。原子訪問是指線程在訪問資源時能夠確保所有其他線程都不在同一個時間內訪問相同的資源。線程同步的原子訪問可通過互鎖的函數家族來解決,互鎖函數的運行取決于運行在何種CPU平臺。對于X86家族的CPU來說,互鎖函數會對總線發出一個硬件信號,防止另一個CPU訪問同一個內存地址;在Alpha平臺上,互鎖函數要執行下列操作:1)打開CPU中的一個特殊位標志,并注明被訪問的內存地址;2)將內存的值讀入一個寄存器;3)修改該寄存器;4)如果CPU中的特殊位標志是關閉的,則轉入2)步,否則,特殊位標志仍然是打開的,寄存器的值重寫入內存。如果系統中的另一個CPU試圖修改同一個內存地址,4)步就能夠關閉CPU的特殊位標志,從而導致互鎖函數返回2)步。無論編譯器怎樣生成代碼,無論計算機安裝多少個CPU,它們都能保證以原子操作方式來修改一個值,還必須保證傳遞給這些函數的變量地址正確地對齊,否則這些函數就會運行失敗。調用互鎖函數的速度極快(通常會導致執行幾個CPU周期,小于50),并且不會從用戶方式轉換為內核方式(通常需要執行1000CPU周期)。避免 在單個CPU計算機上使用循環鎖,如果一個線程正在循環運行,它將會浪費前一個CPU時間,這將防止另一個線程修改該值。循環鎖假定,受保護的資源總是被訪問較短的時間。這使它能夠更加有效地循環運行,然后轉為內核方式并進入等待狀態。在編程時,如循環運行一定次數(如400次)以上,對資源的訪問仍被拒絕,那么該線程就轉為內核方式,這種方式下,它要等待(不消耗CPU時間),直到該資源變為可供使用為止。

創建一個能夠在多處理器計算機上運行的高性能應用程序,需要了解CPU高速緩存行。 當一個CPU從內存讀取一個字節時,它不只是取出一個字節,而是要取出足夠的字節來填入高速緩存行。高速緩存行由3264個字節組成(視CPU而定),并且始終在第32個字節或第64個字節的邊界上對齊,高速緩存行的作用是為了提高CPU運行的性能,通常情況下,應用程序只能對一組相鄰的字節進行處理,如果這些字節在高速緩存中,那么CPU就不必訪問內存總線,而訪問內存總線需要花費多的時間。但是,在多處理器環境中,高速緩存行使得內存的更新更加困難。

關鍵代碼段是一個小代碼段,在代碼能夠執行前,必須獨占對某些共享資源的訪問權。這是讓若干行代碼能夠“以原子操作方式”來使用資源的一種方法。所謂原子操作方式,是指該代碼知道沒有別的線程要訪問該資源。當然,系統能夠抑制線程的運行,而搶先安排其他線程的運行。在線程退出關鍵代碼之前,系統將不給想要訪問相同資源的其他任何線程進行調度。當線程試圖進入另一個線程擁有的關鍵代碼段時,調用線程就立即被置于等待狀態。這意味著該線程必須從用戶方式轉入內核方式(大約1000CPU周期)。這種轉換是要付出很大代碼的。在多處理器上,當前擁有資源的線程可以在不同處理器上運行,并且能夠很快放棄對資源的控制。實際上擁有資源的線程可以在另一個線程完成轉入內核方式之前釋放資源。為提高代碼段的運行性能,Microsoft將循環鎖納入了這些代碼段,因此,當EnterCriticalSection函數被調用時,它就使用循環鎖進行循環,以便設法多次取得該資源,只有當為了取得該資源的每次試圖都失敗后,該線程才轉入內核方式,以便進入等待狀態。使用關鍵的代碼段有幾個技巧值得學習:1)每個共享資源使用一個CRITICAL_SECTION變量;2)同時訪問多個資源,應按照完全相同的順序請求對資源的訪問;3)不可長時間運行關鍵代碼段。

???????????????????????????????? 如非

????????????????????????????????? 2009-1-4

總結

以上是生活随笔為你收集整理的用户方式中线程的同步——Windows核心编程学习手札之八的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本黄色免费大片 | 69视频在线免费观看 | 久操福利| 亚洲红桃视频 | 久久99免费视频 | 成人日韩欧美 | 久久久精品毛片 | 色综合色综合网色综合 | 加勒比综合在线 | 中文字幕免费高清网站 | 四虎1515hh.com| 大胸奶汁乳流奶水出来h | 亚洲一区二区日韩欧美 | 无码人妻精品一区二区三区蜜桃91 | 天天干天天舔天天射 | 国产精品一区在线观看你懂的 | 疯狂少妇 | 中文字幕无码乱人伦 | 国产又粗又黄又爽又硬 | 18视频在线观看网站 | 婷婷久久丁香 | 向日葵视频在线 | 亚洲xxxx天美 | 久久精品一日日躁夜夜躁 | 国产香蕉精品视频 | 成人毛片a | 欧洲精品在线观看 | 狼人综合视频 | 草久久久久 | 亚洲欧美va天堂人熟伦 | 精品一区精品二区 | 亚洲 欧美 日韩 国产综合 在线 | 日本阿v视频 | 国产精品久久久久久人妻精品动漫 | 可以免费观看的毛片 | 国产乱码精品一区二区三 | 久久成人乱码欧美精品一区二区 | 已满十八岁免费观看全集动漫 | 777久久久 | 国产97色在线 | 色欲久久久天天天综合网精品 | 欧美日韩国产第一页 | 69精品久久久 | 精品一区二区人妻 | 大尺度摸揉捏胸床戏视频 | 国产日韩欧美一区二区东京热 | 狠狠狠 | 国产精品果冻传媒 | 91原创国产 | 亚洲av无码一区二区三区在线播放 | 亚洲午夜精品久久 | 伊人网在线 | 夜夜添无码一区二区三区 | 九九九免费 | 综合欧美亚洲 | 超碰最新网址 | 手机看片福利视频 | 性欧美在线观看 | 911香蕉 | 91超薄丝袜肉丝一区二区 | 国产自产一区二区 | 欧洲性猛交 | 国产精品久久久久久久久久久久久久久久久 | av在线免费观看网站 | 国产人妻人伦精品1国产盗摄 | 青青草原免费观看 | 久久av色 | 国产一级视频 | 97干视频 | 日韩久久综合 | 小少妇哺乳喂奶播放 | 国产成人8x视频一区二区 | 在线观看二区 | 国产做受网站 | 天天插天天操 | 一级视频在线 | 欧美xxxx18| 夜夜夜夜操| 五月天久久婷婷 | 精品一区二区免费视频 | 美女性生活视频 | 一本到视频 | 污的网站| 最新黄网 | 国产精品毛片久久久久久久av | jlzzjizz在线播放观看 | 精品人妻一区二区三区换脸明星 | 国产夫妇交换聚会群4p | 网站免费在线观看 | 欧美日韩亚洲不卡 | 久久大 | 极品美女无套呻吟啪啪 | 久久久999视频 | 日本在线视频二区 | 秋霞欧美一区二区三区视频免费 | 欧美成年人在线视频 | 91天堂在线 | 亚洲精品99久久久久中文字幕 | 欧美一级片免费观看 |