ThreadPoolExecutor
ile paralel olarak sdcard'dan birden fazla dosya okumak istiyorum. Threads
sayısını seçmenin en iyi yolu nedir? Mevcut işlemcilerin sayısına göre boyutu seçmek tamam mı?Android'de iş parçacığı havuzu boyutu nasıl seçilir?
5
A
cevap
4
İşlemcinin sayısına bağlı olarak Threads
sayısının seçilmesi, uygulamayı çalıştıran aygıtın donanımına dayalı olarak ölçeklendirildiği için oldukça iyi bir çözümdür. Buna iyi bir örnek AsyncTask
arasında source code bulunabilir: Bunun en iyi uygulama çözüm dikkate alacağını
private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors();
private static final int CORE_POOL_SIZE = CPU_COUNT + 1;
private static final int MAXIMUM_POOL_SIZE = CPU_COUNT * 2 + 1;
private static final int KEEP_ALIVE = 1;
private static final ThreadFactory sThreadFactory = new ThreadFactory() {
private final AtomicInteger mCount = new AtomicInteger(1);
public Thread newThread(Runnable r) {
return new Thread(r, "AsyncTask #" + mCount.getAndIncrement());
}
};
private static final BlockingQueue<Runnable> sPoolWorkQueue =
new LinkedBlockingQueue<Runnable>(128);
public static final Executor THREAD_POOL_EXECUTOR
= new ThreadPoolExecutor(CORE_POOL_SIZE, MAXIMUM_POOL_SIZE, KEEP_ALIVE,
TimeUnit.SECONDS, sPoolWorkQueue, sThreadFactory);
.
AsyncTask
here kaynak kodunu, ThreadPoolExecutor
'u nasıl kullandıkları hakkında daha iyi bir fikir edinmek için bakabilirsiniz.
İlgili konular
- 1. Windows iş parçacığı havuzu ve CLR iş parçacığı havuzu
- 2. İş parçacığı havuzu 'yinelenen' görevler
- 3. İş parçacığı havuzu yeniden boyutlandırılıyor
- 4. iş parçacığı dinamik boyutu koymak nasıl
- 5. Takviye kullanarak bir iş parçacığı havuzu oluşturma
- 6. System.Timers.Timer iş parçacığı bir iş parçacığı havuzu üzerinde yürütme için nasıl engellenir?
- 7. Sonsuz döngü işlevini yapmak için iş parçacığı havuzu nasıl kullanılır?
- 8. C++'da destek kullanarak iş parçacığı havuzu nasıl oluşturulur?
- 9. İskele parçacığı havuzu embeddend
- 10. Yay önyüklemede varsayılan zamanlayıcı havuzu boyutu nedir?
- 11. Tomcat iş parçacığı havuzu? Tomcat.conf'da yorumladı, kullanmalı mıyım?
- 12. QtCon ile ilişkili üye işlevi ve iş parçacığı havuzu
- 13. Yükseltme :: asio iş parçacığı havuzu genel amaçlı görevler için kullan
- 14. Dostum, iş parçam nerede? (veya: bir .NET iş parçacığı havuzu iş parçacığı yeniden adlandırın - bu mümkün mü?)
- 15. iş parçacığı
- 16. iş parçacığı içinde yerel depolama iş parçacığı
- 17. İş parçacığı tanıtıcısı iş parçacığı tanıtıcısı
- 18. Hazırda bekletme yapılandırması havuzu boyutu
- 19. Tomcat iş parçacığı havuzundaki iş parçacığı sayısı nasıl artırılır?
- 20. java parçacığı havuzu görev aşımı sorunu
- 21. iş parçacığı yerel kaldırma yöntemi
- 22. Çoklu iş parçacığı nasıl ekleyebilirim?
- 23. İş parçacığı engellenmeden bekleyin. - Nasıl?
- 24. androidde openssl nasıl kurulur
- 25. Maksimum iş parçacığı sorunu
- 26. UI iş parçacığı üzerinde görev sürdürme, arka plan iş parçacığı
- 27. iş parçacığı afinitesi
- 28. Ana iş parçacığı
- 29. Django/sqlite3 "OperationalError: iş parçacığı yok" iş parçacığı üzerinde
- 30. Ayrı iş parçacığı