Android2.3以前的版本,也即SDK/API 10和以前的版本內部的執行緒池限制是5個,也就是說同時只能有5個執行緒運行。
從Android 3.0開始對AsyncTask的API做出了一些調整:
1#execute()提交的任務,按先後順序每次只運行一個
2 新增了介面#executeOnExecutor()。 這個介面允許開發者提供自訂的執行緒池來運行和調度Thread,如果你想讓所有的任務都能併發同時運行,那就創建一個沒有限制的執行緒池 (Executors.newCachedThreadPool()),並提供給AsyncTask。 這樣這個AsyncTask實例就有了自己的執行緒池而不必使用AsyncTask預設的
4.4.2預設執行緒池大小改為
private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors();
private static final int CORE_POOL_SIZE = CPU_COUNT + 1;
CORE_POOL_SIZE 由具體硬體決定。
全站熱搜
留言列表