我的問題是關於正在排隊的線程。對於我的例子,我有一個Spring上下文。我在無狀態類中有一個名爲CalculateTax的方法。一個請求進入,一個線程被創建(tA),並最終進入CalculateTax方法。在同一個「時間範圍內」,另一個請求進入,另一個線程被創建(tB)。現在,這是我想要了解的。在tA退出該方法之前,AFAIK tB不能執行CalculateTax。這是真的?單身人士和線程
單身人士和線程
回答
不,它不是真的,如果它們是並行線程,每個線程都在它自己的執行堆棧中,所以它應該能夠在執行tA時執行。
這是線程的用途。
謝謝 - 正是我所需要的 – user195166 2009-10-26 10:30:37
並且除非您沒有使方法同步。 – 2009-10-26 10:54:30
完全正確,除非你沒有讓他們同步 – OverLex 2009-10-26 14:39:27
只要CalculateTax只使用局部變量(即在方法中聲明),就不會有任何線程同步問題,並且多個線程可以毫無問題地調用該方法。
但是,如果出於某種原因CalculateTax使用在類級別定義的變量,並且您使用的是單例模式(您用「singleton」標記了您的問題,所以我猜你是),但您可能會遇到線程同步問題。
他說這個班是無國籍的。所以... – 2009-10-26 10:47:50
啊,沒有看到,謝謝 – JonoW 2009-10-26 10:56:17
一般來說,答案是不確定的。如果您的'請求'來自遠程客戶端,則答案取決於用於服務公開的機制的實現細節。
但是,我不知道真正使代理序列化請求的遠程通信框架,也就是說,假定目標服務開發人員解決這個問題(例如,您的任務是爲服務實現提供線程安全性,或者使用顯式同步等將所有請求序列化)。
- 1. 線程安全枚舉單身人士
- 2. 單身人士和範圍
- 3. AFNetworking和單身人士
- 4. 單身人士和DbSimple
- 5. 單身人士和例外
- 6. 單身人士和常量
- 7. 爪哇:單身人士使用ENUM ..是我的對象單身人士和線程安全
- 8. NLog。單身人士和調用類/方法/線程
- 9. 統一「ContainerControlled」單身人士和多線程方法調用
- 10. 由Singleton包裝的單身人士或非單身人士
- 11. C#:單身人士使用單身人士
- 12. 爲什麼java.lang.Runtime是單身人士?單身人士的要求?
- 13. 我的單身人士模板真的是單身人士嗎?
- 14. 單身人士通過幾個進程?
- 15. 單身人士破壞者
- 16. 繼承單身人士
- 17. NSMutableDictionary單身人士問題
- 18. RequireJS中的單身人士
- 19. 單身人士濫用?
- 20. RavenDB的單身人士DocumentStore
- 21. 使用QtConcurrent單身人士
- 22. 單身人士 - 未定義?
- 23. Embeded RavenDb的單身人士
- 24. 假FakeItEasy單身人士
- 25. ThreadLocal與單身人士
- 26. 提升單身人士
- 27. ASP.NET中的單身人士
- 28. MIDlet作爲單身人士
- 29. servlet是單身人士嗎?
- 30. Python中的單身人士
在這個問題中沒有引用Singleton的地方是Spring的上下文單例還是可以刪除整個單例? – Janusz 2009-10-26 10:55:04
也許他意味着他在Spring上下文中聲明瞭他的bean是單例(Spring術語,不一定是該術語的經典含義),所以所有請求都獲得相同的對象實例 - 因此擔心併發。 – 2009-10-26 13:43:46