Java并发编程:ExecutorService异步执行示例

原创 左手的ㄟ右手 2024-11-13 02:54 88阅读 0赞

在Java中,ExecutorService 是一个接口,用于管理异步任务的执行。它提供了一种将任务提交给线程池执行的方法,而不需要手动管理线程的生命周期。以下是使用 ExecutorService异步执行任务的一个简单示例:

```javaimport java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

public class ExecutorServiceExample {

public static void main(String[] args) {
// 创建一个固定大小的线程池ExecutorService executor = Executors.newFixedThreadPool(3);

// 提交一个任务给线程池执行 executor.submit(() -> {
System.out.println(“任务1开始执行”);
try {
Thread.sleep(1000); //模拟任务执行时间} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(“任务1执行结束”);
});

// 提交另一个任务给线程池执行 executor.submit(() -> {
System.out.println(“任务2开始执行”);
try {
Thread.sleep(2000); //模拟任务执行时间} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(“任务2执行结束”);
});

// 提交第三个任务给线程池执行 executor.submit(() -> {
System.out.println(“任务3开始执行”);
try {
Thread.sleep(3000); //模拟任务执行时间} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(“任务3执行结束”);
});

// 关闭ExecutorService,不再接受新任务,已提交的任务继续执行 executor.shutdown();

try {
//等待所有任务执行完成 executor.awaitTermination(1, TimeUnit.MINUTES);
} catch (InterruptedException e) {
e.printStackTrace();
}

System.out.println(“所有任务执行完毕”);
}
}
``在这个示例中,我们创建了一个固定大小为3的线程池,然后提交了三个任务给线程池执行。每个任务都是一个简单的Runnable实现,它打印出任务开始和结束的消息,并在中间模拟执行时间。最后,我们关闭了ExecutorService`并等待所有任务执行完成。

请注意,ExecutorService 提供了多种方法来提交任务,例如 submit()execute()invokeAll()等。submit() 方法返回一个 Future 对象,可以用来查询任务执行状态或获取任务结果。而 execute() 方法不接受返回值,也不提供查询任务状态的方法。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,88人围观)

还没有评论,来说两句吧...

相关阅读