我認爲這個原子操作比++
更快。我只看到有利於Interlocked.Increment
的優勢。它有什麼缺點?如果Interlocked.Increment是原子的,爲什麼我應該用++代替?
1
A
回答
11
1
原子並不意味着它更快。事實上,它幾乎肯定會變慢。
在併發編程,一個 操作(或一組操作)是 原子,線性化,不可分割或 不間斷如果它出現在 其餘系統的發生 瞬間。
這僅僅意味着在手術過程中沒有可觀察到的副作用。它沒有說明手術需要多長時間。
相關問題
- 1. 我應該用什麼來代替stmt.executeUpdate()?
- 2. 我應該用什麼來代替AddPort?
- 3. 我應該用什麼來代替DS.FixtureAdapter
- 4. 我應該用什麼來代替FlowLayout()?
- 5. 我應該用什麼來代替LoadWithPartialName()?
- 6. 我應該用什麼來代替Directory.SetCurrentDirecory?
- 7. 我應該用什麼來代替.__ getslice__?
- 8. 我應該用什麼來代替clutter_score_new?
- 9. 我應該用什麼來代替ping?
- 10. 爲什麼我應該使用Reify代替clojure中的代理?
- 11. 我應該寫什麼來代替ACFacebookAppIdKey?
- 12. 如果違反Liskov替代原則,我該怎麼辦?
- 13. 爲什麼我應該在物業中使用非原子?
- 14. 這是違反Liskov替代原則嗎?如果是這樣,我該怎麼辦?
- 15. 什麼是反向代理,爲什麼我應該使用Node.JS?
- 16. 如果Hessian死了,應該用什麼來代替?
- 17. ActiveRecord find_all_by_X是否保存命令?如果不是,應該用什麼來代替?
- 18. 應該用什麼來代替sun.net.www.protocol.jar.Handler?
- 19. 我應該使用什麼來代替已棄用的Date.getHours()
- 20. 我應該用什麼來代替R中的傳遞引用?
- 21. 我應該用什麼來代替Django-sorl棄用的ImageWithThumbnailsField?
- 22. 爲什麼我應該使用vagrant如果我使用virtualenv?
- 23. 爲什麼Django Atom1Feed使用atom:updated代替原子:published?
- 24. 我應該用什麼來代替linux.h中的windows.h?
- 25. 我應該用什麼來代替Perl中的printf?
- 26. 我們應該用什麼來代替Windows 10 Universal App的LoadStateEventArgs?
- 27. 我應該用什麼來代替Phonegap 2.9的「Plugin」?
- 28. requestAccessToAccountsWithType在ios6.1中已棄用,我應該用什麼來代替?
- 29. HttpClient.getParams()已棄用。我應該用什麼來代替?
- 30. getPosition已棄用我應該用什麼來代替?
你爲什麼認爲它比'++'快? – 2011-05-23 13:42:40
你沒有單線程編程? – 2011-05-23 13:42:44
這已經在這裏回答:http://stackoverflow.com/questions/1034070/performance-of-interlocked-increment – Niki 2011-05-23 13:44:14