线程池实现异步任务执行java代码实现 请给出5种实现方式
时间: 2024-05-09 20:19:16 浏览: 192
1. Java Executor Framework:Java Executor Framework是Java中提供的线程池框架,可以实现异步任务执行。可以通过以下代码实现线程池和异步任务执行:
```
ExecutorService executor = Executors.newFixedThreadPool(5);
// 异步任务
Runnable task = new Runnable() {
@Override
public void run() {
// 执行任务
}
};
// 提交任务
executor.submit(task);
// 关闭线程池
executor.shutdown();
```
2. Spring Task Executor:Spring框架中提供了TaskExecutor接口,可以实现异步任务执行。可以通过以下代码实现异步任务执行:
```
@Autowired
TaskExecutor taskExecutor;
// 异步任务
Runnable task = new Runnable() {
@Override
public void run() {
// 执行任务
}
};
// 提交任务
taskExecutor.execute(task);
```
3. Java Future和Callable:Java中提供了Future和Callable接口,可以实现异步任务执行。可以通过以下代码实现异步任务执行:
```
ExecutorService executor = Executors.newFixedThreadPool(5);
// 异步任务
Callable<String> task = new Callable<String>() {
@Override
public String call() throws Exception {
// 执行任务
return "任务执行结果";
}
};
// 提交任务
Future<String> future = executor.submit(task);
// 获取任务执行结果
String result = future.get();
// 关闭线程池
executor.shutdown();
```
4. Java CompletableFuture:Java8中提供了CompletableFuture类,可以实现异步任务执行。可以通过以下代码实现异步任务执行:
```
// 异步任务
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
// 执行任务
});
// 获取任务执行结果
future.get();
```
5. 自定义线程池:可以通过自定义线程池实现异步任务执行。可以通过以下代码实现异步任务执行:
```
// 自定义线程池
ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 10, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());
// 异步任务
Runnable task = new Runnable() {
@Override
public void run() {
// 执行任务
}
};
// 提交任务
executor.submit(task);
// 关闭线程池
executor.shutdown();
```
阅读全文