// Java多线程并发执行示例
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class MultiThreadExample {
// 创建一个固定大小的线程池,这里设置为3个线程
private static final int THREAD_POOL_SIZE = 3;
public static void main(String[] args) {
// 创建一个固定大小的线程池
ExecutorService executorService = Executors.newFixedThreadPool(THREAD_POOL_SIZE);
// 提交多个任务到线程池中执行
for (int i = 0; i < 10; i++) {
Runnable task = new Task(i);
executorService.submit(task);
}
// 关闭线程池,不再接受新的任务,但会继续执行已提交的任务
executorService.shutdown();
}
// 定义一个任务类,实现Runnable接口
static class Task implements Runnable {
private final 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(2000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
System.out.println("Task " + taskId + " was interrupted");
}
System.out.println("Task " + taskId + " has finished");
}
}
}
线程池创建:
Executors.newFixedThreadPool(THREAD_POOL_SIZE)创建了一个固定大小为3的线程池。线程池可以复用线程,减少线程创建和销毁的开销。任务提交:
executorService.submit(task)将多个任务提交给线程池执行。每个任务是一个实现了Runnable接口的对象。任务类:
Task类实现了Runnable接口,重写了run()方法,在该方法中定义了任务的具体执行逻辑。线程池关闭:
executorService.shutdown()方法关闭线程池,表示不再接受新的任务,但会继续执行已经提交的任务。异常处理:
run()方法中捕获了InterruptedException,确保当线程被中断时能够正确处理并恢复中断状态。通过这种方式,多个任务可以在不同的线程中并发执行,提高了程序的执行效率。
上一篇:java jpa
下一篇:java换行
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站