0
我正在閱讀Joe Albahari的並行擴展優秀article。他說,並行擴展和鎖定 - C#
利用多內核是容易 大多數服務器應用程序,其中每個 線程可以獨立處理 單獨的客戶端請求,但在桌面上更難 - 因爲它通常 要求你把你的 計算密集型代碼和做 如下:
- 劃分成小塊。
- 通過多線程並行執行這些塊。
- 以線程安全和高性能方式列出可用結果。
雖然你可以做到這一切與 經典的多線程結構, 它的尷尬 - 特別的步驟劃分和整理的 。 A 更進一步的問題是,線程安全的鎖定策略 會在許多線程同時對同一數據工作時引發很多爭用。
PFX庫已經專門設計了 以幫助在這些 的情況。
我想知道PFX
如何減少此爭議?
AFAIK,線程由操作系統管理,操作系統負責提供和釋放鎖。像PFX
這樣的其他東西都是抽象的,它處理好鎖定並嘗試用非常小的鎖定來完成這項工作。我想這是可能的,甚至直接操縱線程並仔細鎖定以避免爭執。
這是正確的嗎?或者有沒有更好的方式來執行線程安全操作,而不使用鎖?