Tôi muốn đọc nhiều tệp từ sdcard song song với ThreadPoolExecutor
. Cách tốt nhất để chọn số Threads
là gì? Bạn có thể chọn kích thước dựa trên số lượng bộ xử lý có sẵn không?Cách chọn kích thước hồ bơi chủ đề trên android
5
A
Trả lời
4
Chọn số lượng Threads
dựa trên số lượng bộ xử lý là một giải pháp khá tốt vì nó cân dựa trên phần cứng của thiết bị đang chạy ứng dụng. Một ví dụ điển hình của việc này có thể được tìm thấy trong source code của 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);
tôi sẽ coi đây là một giải pháp thực hành tốt nhất.
Bạn có thể xem mã nguồn của AsyncTask
here nếu bạn muốn có ý tưởng tốt hơn về cách chúng sử dụng ThreadPoolExecutor
.
Các vấn đề liên quan
- 1. Thay đổi kích thước hồ bơi theo chủ đề trong Jetty 9
- 2. Hồ bơi chủ đề trong Java
- 3. ThreadPoolExecutor - Core và kích thước hồ bơi tối đa
- 4. sự khác biệt giữa hồ bơi chuỗi cửa sổ và hồ bơi chủ đề CLR
- 5. Kích thước hồ bơi kết nối cấu hình Hibernate
- 6. 500 Chủ đề công nhân, loại hồ bơi chủ đề nào?
- 7. boost :: asio, hồ bơi chủ đề và theo dõi luồng
- 8. Chủ đề hồ bơi, dữ liệu chia sẻ, Java Synchronization
- 9. Trình điều khiển Api Web và Hồ bơi Chủ đề
- 10. Cố định chủ đề Hồ bơi chủ đề chặn, khi đủ công việc gửi
- 11. sự khác biệt giữa android looper và hồ bơi chủ đề thi hành
- 12. Tạo một hồ bơi chủ đề bằng cách sử dụng tăng cường
- 13. Tạo hồ bơi chủ đề động (đang phát triển/thu hẹp)
- 14. Các vấn đề về hồ bơi của chủ đề thủy tinh
- 15. Làm thế nào để tăng kích thước hồ bơi tối đa trong ActiveRecord?
- 16. Sử dụng hồ bơi theo chủ đề trong thực hiện dịch vụ .NET REST
- 17. Đã đạt đến kích thước bể bơi tối đa?
- 18. Mã cho một hồ bơi chủ đề đơn giản trong C#
- 19. OpenMP: chạy hai chức năng song song, mỗi một nửa số hồ bơi chủ đề
- 20. Làm thế nào để tăng kích thước ActiveRecord bơi thread trên Heroku
- 21. Sử dụng nhiều máy chủ memcache trong một hồ bơi
- 22. Java có hồ bơi chủ đề nhiều hàng có thể lập chỉ mục không?
- 23. Kích thước quảng cáo AdMob trên Android
- 24. Kết nối hồ bơi kết nối JMS hoặc Session Pooling
- 25. Kích thước ngăn xếp của chủ đề an toàn?
- 26. Quy mô khoảng cách của chủ đề Valo và kích thước tiện ích theo kích thước của chủ đề Tuần lộc
- 27. Hồ bơi nằm trên ghế dài là gì
- 28. Làm thế nào để thiết lập kích thước hồ bơi tối đa hoặc kích thước kết nối cho BasicDataSource trong Spring Framework
- 29. ChannelFactory Hồ bơi kết nối tối đa
- 30. Kích thước bể bơi tối đa của Nhóm kết nối ADO.Net đạt được