java多线程异步处理demo
时间: 2023-09-02 08:05:48 浏览: 87
下面是一个简单的Java多线程异步处理的示例代码:
```
public class AsyncDemo {
public static void main(String[] args) {
// 创建一个线程池
ExecutorService executorService = Executors.newFixedThreadPool(10);
// 提交多个任务到线程池中执行
for (int i = 0; i < 10; i++) {
executorService.submit(new Task(i));
}
// 关闭线程池
executorService.shutdown();
}
}
class Task implements Runnable {
private int taskId;
public Task(int taskId) {
this.taskId = taskId;
}
@Override
public void run() {
System.out.println("Task #" + taskId + " is running on thread " + Thread.currentThread().getName());
// 模拟任务执行的耗时
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Task #" + taskId + " is completed.");
}
}
```
在这个示例中,我们创建了一个固定大小为10的线程池,并提交了10个任务到线程池中执行。每个任务都是一个实现了`Runnable`接口的类,它们会在独立的线程中执行。在每个任务的run方法中,我们打印了任务的编号和执行线程的名称,并模拟了任务的执行时间。
通过使用线程池,我们可以避免不必要的线程创建和销毁的开销,提高了程序的效率。同时,多线程异步处理可以让程序在执行耗时任务时不会被阻塞,提高了程序的响应速度。
阅读全文