我想知道在這個特定場景中使用CachedThreadPool
或FixedThreadPool
。 當用戶登錄到應用程序。地址列表將獲得約10個地址。我需要做到以下幾點:CachedThreadPool vs FixedThreadPool
- 轉換的地址爲緯度和經度,我特意打電話谷歌API
- 獲得上述獲取的緯度和經度與用戶的當前位置之間的距離也與谷歌的API的幫助
所以我創建了一個類GetDistance
它實現Runnable
- 在這個類中,我第一次調用谷歌API和解析resposne得到相應的緯度和經度,然後調用和解析另一個谷歌API來獲取驅動的結果距離。
private void getDistanceOfAllAddresses(List<Items> itemsList) {
ExecutorService exService = newCachedThreadPool(); //Executors.newFixedThreadPool(3);
for(int i =0; i<itemsList.size(); i++) {
exService.submit(new GetDistance(i,usersCurrentLocation));
}
exService.shutdown();
}
我試圖與這兩個CachedThreadPool
和FixedThreadPool
- 所用的時間幾乎是一樣的我也很贊成CachedThreadPool的,因爲它被推薦用於小規模行動,但我關心的是 - 讓我們假設CachedThreadPool
創建10個線程(最壞情況)來完成這個過程(10個項目),如果我的應用程序運行在低端設備上,這會是一個問題嗎?由於創建的線程數量也會影響設備的RAM。
想知道你的想法和意見。哪個更好用?
感謝
感謝我正在尋找的東西。 – ik024
好的和準確的答案 – Androider
線程數量多於處理器內核數量可能會導致更好的性能如何? – whomaniac