是否有任何缺點使你的每一個方法在Android中同步?Android:爲什麼不讓每個方法同步?
1
A
回答
6
是的 - 當你不想要它們時,它最終會取出鎖。它不會免費給你線程安全 - 它只會減慢你的代碼,並使它更有可能因爲取出太多的鎖而陷入死鎖。
你需要需要明確地考慮線程安全和同步。我通常使大多數類不是線程安全的,並嘗試限制我考慮線程的地方的數量。
的「讓一切同步」的方法是什麼,我想一個普通的一種,穿線意識的四個階段爲開發者:
- 完全無知:沒有同步,沒有的潛在問題的認識
- 一些認識,但相信通用同步治癒百病
- 知道哪裏有問題,並採取了很多心血在收拾東西的痛苦的階段正確
- 讓一切R的神話舞臺飛行自然
大多數有經驗的開發人員都在第3階段,據我可以告訴 - 與在它不同層次的,當然容易。使用不變性,更高層次的抽象而不是低級的原語等等會有很大幫助 - 但是最終當你有多個需要共享狀態的線程時,最終你可能不得不考慮相當數量的抽象。
+0
謝謝,我有種感覺,它不可能那麼容易:) – tjb
相關問題
- 1. 爲什麼Android Studio不能同步Gradle?
- 2. 方法同步vs對象同步有什麼不同?
- 3. 什麼是爲每個用戶生成不同AntiForgeryToken的方法
- 4. 爲什麼我的同步方法鎖定不同的對象?
- 5. 爲什麼不同步?
- 6. 爲什麼在此多線程程序中不同步訪問同步方法?
- 7. 爲什麼每個方法被調用?
- 8. 3同步要求:爲什麼這種方法不起作用?
- 9. 爲什麼Semaphores中的acquire()方法不必同步?
- 10. 爲什麼同步方法不包含在接口
- 11. 爲什麼這種同步方法給我一個錯誤?
- 12. 爲什麼這個同步方法沒有按預期工作?
- 13. 有什麼辦法讓ASP.NET webservice方法使用異步方法?
- 14. 什麼是靜態方法同步嗎?
- 15. 爲什麼我不能讓docker異步運行w/Android Studio Emulator?
- 16. 爲什麼WCF異步方法在同步時不會拋出FaultException?
- 17. 爲什麼此同步方法無法按預期工作?
- 18. 爲什麼NSNumber比較方法不同?
- 19. 爲什麼不是每種方法都是靜態方法?
- 20. Android Syncadapter不讓用戶選擇同步或不同步
- 21. 爲什麼同步方法允許多個線程同時運行?
- 22. 爲什麼我的Android Studio項目無法同步?
- 23. Java同步方法...不同步
- 24. 爲什麼不在Monotouch中同步TaskScheduler.FromCurrentSynchronizationContext?
- 25. 爲什麼這不正確同步?
- 26. 爲什麼我的線程不同步?
- 27. 爲什麼CopyOnWriteArrayList.get不需要同步?
- 28. 爲什麼此rsync命令不同步?
- 29. 爲什麼不讓這個循環異步運行?
- 30. 何時以及爲什麼NSUserDefaults的同步方法失敗?
是的,它不會做你認爲它的作用。 –