亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我的整個 android 應用程序的一個線程池

我的整個 android 應用程序的一個線程池

米琪卡哇伊 2021-06-16 21:14:06
像 - 網絡操作和位圖操作圖像加載和其他類型的工作,我可以TheadPoolExecuter為我的整個應用程序創建一個并在其上執行。如果答案是否定的 -> 為什么?以及如何thread pool為每個操作創建?或者如果是 -> 是否發生性能問題?
查看完整描述

2 回答

?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

這兩種方法都有優點和缺點。

在單線程池的情況下(我想是單例實現):
? 你有一個入口點來提交后臺任務
? 很容易實現和控制生命周期
? 如果你有很多不同的快速任務和一些長時間運行的任務,很長正在運行的任務可能會將所有線程保留在有限的池中,而用戶在 UI 中等待一些快速操作

不同的線程池(一種任務一個池):
? 長時間運行任務的線程池可以累積任務,而快速任務可以在自己的線程池中獨立執行
? 你對你的應用程序中的任務了如指掌 - 你可以使用線程工廠為每種類型的任務微調池大小,設置線程優先級,初始堆棧大小等
? 如果您定義線程組和線程名稱,它可以幫助您進行調試
? 涉及不同的線程池來硬控制它們的生命循環
?這個實現不會在任務類分離不佳的情況下帶來很多好處

無論如何,您需要做出一些妥協并評估優勢


查看完整回答
反對 回復 2021-06-23
?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

我認為你可以做到這一點,并且根據oracle 文檔應該可以提高你的表現:

線程池解決了兩個不同的問題:由于減少了每個任務的調用開銷,它們通常在執行大量異步任務時提供改進的性能,并且它們提供了一種限制和管理資源的方法,包括在執行集合時消耗的線程任務。每個 ThreadPoolExecutor 還維護一些基本的統計信息,例如已完成的任務數。


查看完整回答
反對 回復 2021-06-23
  • 2 回答
  • 0 關注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號