2
A
回答
8
1
創建一個新線程有很大的開銷。如果線程的活動很短,創建開銷甚至可能比實際執行時間更長。您將需要儘可能多地回收線程。我建議使用ExecutorService
。
0
由於創建開銷,創建新線程並不是最好的方法。您應至少使用線程池(請參閱Executor瞭解更多詳細信息),而不是創建新線程。
線程的生命週期也很重要。如果太短,由於上下文切換開銷,性能可能會更差。
另一個重要的一點是您擁有的CPU /內核的數量。作爲一般規則,如果您的任務是CPU密集型的,那麼您應該使用每個核心1-2個線程(我假設這是您的情況)。如果你的任務是I/O密集型的,你可以把這個數字稍微加一點(比如說3-5個)。
相關問題
- 1. MSMQ可以解決多線程服務的性能瓶頸嗎?
- 2. Jython中隱藏的多線程瓶頸?
- 3. 在Python中使用igraph創建網絡的性能瓶頸
- 4. 性能瓶頸_L_unlock_16
- 5. django性能瓶頸
- 6. Eigen程序中的性能瓶頸
- 7. 查找.NET多線程瓶頸
- 8. 瓶頸上的Tensorflow:多線程錯誤
- 9. 是PowerShell的瓶頸
- 10. 在ASP.NET中發現性能瓶頸
- 11. Ruby vs Java和瓶頸
- 12. 爲什麼鎖定可能會成爲多線程程序的瓶頸?
- 13. PHP和Redis - 性能 - PHP是瓶頸
- 14. DataView.Sort是一個性能瓶頸
- 15. 性能瓶頸Url.Action - 我可以解決它嗎?
- 16. ASP.NET性能瓶頸之謎
- 17. ADO.NET SQL Server性能瓶頸
- 18. MySQL的性能瓶頸
- 19. EclipsLink 2.0的性能瓶頸
- 20. CUDA MPI性能瓶頸
- 21. Zend_Search_Lucene的性能和瓶頸?
- 22. Spark的性能瓶頸
- 23. 我可以在Java中創建沒有函數的線程嗎?
- 24. 多次重複的TcpClient連接是性能瓶頸嗎?
- 25. 在Java中創建線程
- 26. 在JavaScript中尋找瓶頸?
- 27. java併發性的潛在瓶頸
- 28. GPU編程 - 轉移瓶頸
- 29. Python - 瓶默認路線可能嗎?
- 30. 可以在線程中創建線程嗎?
我不知道這是否是語言問題,但不可能說它是否會成爲瓶頸。如果你的系統速度很慢,那麼可能無關緊要,如果它是一個非常快的系統(或者框架等),那麼這幾個選擇之間的最快選項可能仍然是一個瓶頸? – Nanne