-4
A
回答
-2
Interlocked類提供了原子操作,這意味着它們不會像鎖一樣阻止其他代碼,因爲它們並不需要。當你鎖定一段代碼時,你要確保同時沒有2個線程,這意味着當一個線程在所有其他線程中等待進入時,它使用資源(cpu時間和空閒線程)。另一方面,原子操作不需要阻止其他原子操作,因爲它們是原子操作。它在概念上是一個CPU操作,接下來的操作只會在前一個操作之後進行,並且不會在等待時浪費線程。 (順便說一句,這就是爲什麼它僅限於像Increment,Exchange等非常基本的操作)
我認爲一個鎖(它是一個下面的Monitor)使用聯鎖來知道鎖是否已被佔用,但它可以'不知道里面的動作可能是原子的。
但在大多數情況下,差異並不重要。但是你需要驗證你的具體情況。
+0
互鎖方法是_made_原子。它們跨越多個CPU操作。 –
相關問題
- 1. 互斥鎖與pthread_join之間的區別
- 2. 鎖定(this)和靜態對象鎖定之間的區別
- 3. 鎖,互斥和臨界區之間的區別
- 4. 比賽和死鎖之間的區別
- 5. 監視器和鎖之間的區別?
- 6. 嵌套鎖和簡單鎖之間的區別
- 7. 互斥鎖和鎖
- 8. C++中互斥鎖和臨界區之間的性能差異
- 9. lockObject上的synchronized和使用此鎖作爲鎖之間有什麼區別?
- 10. 鎖定多個互斥鎖
- 11. Jest中的模擬和解鎖測試之間的區別
- 12. 數據庫中顯式鎖和隱式鎖之間有什麼區別?
- 13. 多線程:鎖定對象類型之間的區別
- 14. yarn.lock和npm的包裝鎖之間有什麼區別?
- 15. 同步和重入鎖之間的區別?
- 16. 觸發器和鎖存器之間的區別
- 17. 同步塊和條件變量鎖之間有什麼區別?
- 18. 使用synchronized關鍵字和鎖之間有什麼區別
- 19. 級別鎖定和解鎖統一
- 20. 鎖定互斥鎖的分段錯誤
- 21. 成功的互斥鎖鎖定
- 22. 在範圍鎖定之前檢查可選的互斥鎖
- 23. python線程和綠色線程中鎖定行爲之間的任何區別?
- 24. pthread互斥鎖兩個線程互鎖鎖定/解鎖是否有效?
- 25. SVN-文件的工作副本上的鎖定與存儲庫文件上的鎖定之間的區別
- 26. 鎖定指定對象和鎖定輔助對象有什麼區別?
- 27. 彈簧安全:帳戶鎖定和未啓用之間有什麼區別
- 28. pthread_getspecific和互斥鎖
- 29. C# - 鎖定互斥鎖問題
- 30. 函數可以鎖定互斥鎖嗎?
@Habib這不是完全相同的問題。另一個問題是「爲了增加這個領域,應該採用哪種方法,爲什麼?」在這裏,OP在詢問「他們如何在內部工作?」 - 這在那裏根本沒有解決。 –
答案包含他要求的細節。因此,基本的互聯網搜索:/ – Will