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