Q
鎖定免費併發隊列
2
A
回答
4
3
無鎖意味着不使用鎖。自旋等待不鎖定。有許多方法可以在不使用鎖的情況下同步對數據的訪問。執行旋轉等待是一個(很多)選項。並非所有的無鎖代碼都會使用自旋等待。
+2
不,它沒有。無鎖意味着保證全系統的進展。調用此函數的10個線程在狀態未設置時將不會執行任何進度。你甚至可能在這裏住鎖。無鎖算法中不能同時存在死鎖和活鎖,這就是無鎖保證的全部要點。 – axe 2013-03-01 19:42:11
2
紡紗將CPU置於一個緊密的循環中,而不會使其當前處理器的剩餘時間減少,從而避免用戶提供的循環可能產生的問題。如果知道狀態改變即將發生,這可能很有用。這對於普通代碼來說是最好的選擇,並且代表替代來鎖定這種特殊情況。
所以是的,因爲在.NET Framework中使用了術語鎖,因此代碼是無鎖的。
相關問題
- 1. 鎖定免費隊列 - 單個生產者,多個消費者
- 2. C#鎖定免費散列表#
- 3. 實現雙鎖併發隊列
- 4. 併發隊列使用Qt是死鎖
- 5. C++ 11鎖定免費堆棧
- 6. 鎖定免費容器和可見性
- 7. 併發訪問,並免費堆對象
- 8. 樂觀鎖定隊列
- 9. 性能VS隊列+鎖定
- 10. C++隊列非鎖定
- 11. 併發隊列離隊
- 12. 排隊併發隊列
- 13. 免費沒有免費的指針作爲va_arg列表發送
- 14. 爲什麼在自定義併發隊列中發生死鎖dispatch_sync
- 15. 什麼是更快的一個併發隊列或8個無鎖隊列?
- 16. 併發鎖定HashSet
- 17. EJB輪詢定期併發隊列
- 18. 併發收集VS鎖定列表
- 19. 避免併發刪除造成死鎖
- 20. AMQP basic.get併發消費者從隊列中提取
- 21. 使用dispatch_semaphore_t併發隊列中的死鎖
- 22. 雙鎖併發隊列算法實現問題
- 23. 並行雙鏈表 - 多生產者/消費者FIFO隊列 - 死鎖
- 24. 獲取對兩個互斥鎖的鎖定並避免死鎖
- 25. 如何通過調度併發隊列(GCD)實現可重入鎖定機制?
- 26. 免費的TFS團隊流程模板?
- 27. 免費團隊經理申請?
- 28. 等待免費或無鎖初始化
- 29. 免費或廉價VCS與「鎖」,而不是「合併」?
- 30. Java併發:排隊隊列問題
紡紗未鎖定。你認爲哪裏鎖定? – 2013-03-01 18:26:17
微軟大聲笑 – 2013-03-01 18:27:21
@ChristianStewart Aww,應該留下 - 給它一個很好的規範。 :) – JerKimball 2013-03-01 18:29:15