Chcę czytać wiele plików z karty SD równolegle z ThreadPoolExecutor
. Jaki jest najlepszy sposób wyboru numeru Threads
? Czy można wybrać rozmiar w oparciu o liczbę dostępnych procesorów?Jak wybrać rozmiar puli wątków na Androida
5
A
Odpowiedz
4
Wybór numeru Threads
w zależności od liczby procesorów jest całkiem dobrym rozwiązaniem, ponieważ skaluje się w oparciu o sprzęt urządzenia, na którym działa aplikacja. Dobrym przykładem tego można znaleźć w source code z AsyncTask
:
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);
uważam to rozwiązanie najlepsze praktyki.
Możesz spojrzeć na kod źródłowy AsyncTask
here, jeśli chcesz mieć lepszy pomysł, jak korzystać z ThreadPoolExecutor
.
Powiązane problemy
- 1. Zmień rozmiar puli wątków na Jetty 9
- 2. Wyjątki dotyczące wątków puli wątków
- 3. InheritableThreadLocal i puli wątków
- 4. Jak wybrać folder na Androida?
- 5. Jak zwiększyć liczbę wątków w puli wątków tomcat?
- 6. Puli wątków "Naprawiono"/"Równoważenie obciążenia" C#?
- 7. C# niższy priorytet wątku w puli wątków
- 8. Konfiguracja połączenia hibernacji rozmiar puli
- 9. Przesyłanie zadań do puli wątków daje RejectedExecutionException
- 10. Przykład dynamicznej puli wątków w boost :: asio
- 11. Jak obliczyć odpowiedni rozmiar widgetu na Androida?
- 12. Dlaczego rozmiar puli domyślnego wątku tomcat jest tak duży?
- 13. Jak korzystać z puli wątków, aby wykonać funkcję nieskończonej pętli?
- 14. zmieniając rozmiar postać z wątków
- 15. Pracownik, wątki i rozmiar puli przy użyciu Puma
- 16. Chrome na Androida zmienia rozmiar czcionki
- 17. Rozmiar ikony uruchamiania aplikacji na Androida:
- 18. Optymalny rozmiar bufora Androida:
- 19. Poczekaj, aż wszystkie wątki zakończył swoją pracę w puli wątków
- 20. Jaka jest różnica między używaniem puli wątków a normalnym wątkiem?
- 21. Jaki jest pożytek z puli wątków w Javie?
- 22. Zastosowanie puli wątków w implementacji usługi .NET REST
- 23. Czy można nadać tymczasową nazwę wątkowi z puli wątków?
- 24. Rozmiar cienia dragshadowbuildeta androida
- 25. Uzyskaj rozmiar bitmapy Androida
- 26. Aplikacja na Androida: jak odczytać rozmiar czcionki w Ustawieniach?
- 27. Jak wybrać między różnymi sposobami wykonywania wątków w Delphi?
- 28. Rozmiar puli połączeń aplikacji Rails, unikając problemów z maksymalnym rozmiarem puli
- 29. Dostosuj rozmiar czcionki Androida WebView
- 30. Bezpieczeństwo wątków Androida LruCache (Android 3.1)