我的Android應用程序擴展了一些Thread和AsyncTask類。加載活動時我使用了這些類中的任何一個。我這樣做是爲了運行一個I/O任務,並且如果加載時間超過一秒鐘,就向用戶顯示一個對話框。可以肯定地說,一次只會運行一個線程或AsynTask(不包括主UI)。我需要一個線程池嗎?使用線程類和AsyncTask類的線程池
0
A
回答
1
不,它不會安全地假設。很可能會有多個線程運行(儘管在單個核心上) - 您應該關心的是您可以真正控制的內容 - 確保您的用戶沒有不好的體驗 - 我認爲您已經在保持這種狀態用於UI的單獨線程。
實際上,通過使用AsyncTask,可以從同一個活動本身運行多個線程(不包括UI線程)。 Android本身有很多線程在運行,它也有一定的優先級需要被尊重。如果我們通過編寫自己的線程池來解決優先級問題(我懷疑我們是否可以訪問非監禁手機上的所有線程),則系統可能會變得不穩定並可能導致頻繁崩潰。
Android有一個內置的算法來調用垃圾收集器,並殺死線程,如果他們貪婪/捱餓其他線程死亡。因此,在設計一個好的應用程序時,我們還需要覆蓋這樣的角落案例,否則我們會在service.start()中得到大量的NPE,而且這個過程非常隨機。
此外,從最新的手機,它看起來像雙核更新的手機已經出來:)
相關問題
- 1. 線程池中的AsyncTask
- 2. 使用線程和asyncTask
- 3. 使用線程池和JMS
- 4. 使用線程池的多線程
- 5. 使用多線程的線程池
- 6. 使用線程池
- 7. 使用線程池
- 8. 使用線程池
- 9. 線程和類
- 10. 類和線程
- 11. 使用jboss5線程池開始線程
- 12. 使用線程池或線程
- 13. 新的線程()和線程池?
- 14. 線程池中的線程
- 15. BeginXXX和線程池
- 16. InheritableThreadLocal和線程池
- 17. C#和線程池
- 18. 線程和電池
- 19. 在C#中的線程池類管理線程執行
- 20. 線程池線程和偵聽事件
- 21. boost :: asio,線程池和線程監視
- 22. 多線程 - 新線程vs線程池
- 23. 線程池最大線程
- 24. 線程池中線程的可用性?
- 25. AsyncTask:在AudioTrack中實現executeOnExecutor()線程類
- 26. 多線程和類?
- 27. C++ /類和線程
- 28. 如何使升壓線程池::線程
- 29. HostingEnvironment.QueueBackgroundWorkItem使用ASP.Net線程池或另一個線程池?
- 30. 固定線程池和緩存線程池參數的差異