Android线程池样例
时间: 2023-08-07 15:35:17 浏览: 90
以下是一个简单的 Android 线程池样例,用于执行一批耗时的任务,以避免堵塞主线程:
```java
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolExample {
private static final String TAG = "ThreadPoolExample";
// 创建一个线程池,最多同时运行 3 个线程
private ExecutorService executorService = Executors.newFixedThreadPool(3);
// 创建一个主线程的 Handler
private Handler mainHandler = new Handler(Looper.getMainLooper());
// 在线程池中执行任务
public void executeTask(Runnable task) {
executorService.execute(() -> {
// 执行耗时任务
task.run();
// 将结果回调到主线程
mainHandler.post(() -> {
// 更新 UI 或处理结果
Log.d(TAG, "Task finished");
});
});
}
// 销毁线程池
public void destroy() {
executorService.shutdown();
}
}
```
在这个样例中,我们通过 `Executors.newFixedThreadPool(3)` 创建了一个最多同时运行 3 个线程的固定线程池。然后,我们通过 `executorService.execute()` 方法将任务提交到线程池中执行。在执行耗时任务后,我们使用 `mainHandler.post()` 方法将结果回调到主线程,以便更新 UI 或处理结果。最后,我们提供了一个 `destroy()` 方法,用于销毁线程池。
阅读全文