我是靠谱客的博主 过时自行车,最近开发中收集的这篇文章主要介绍多线程-线程池执行多业务逻辑,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

/**
* 1.线程池执行不同的业务逻辑.
* 2.获取每个任务执行的结果
* 3.最后的结果会用到之前的结果
*/
public class SearchUserListDTO {
public static void main(String[] args) throws InterruptedException {
ExecutorService executorService = Executors.newFixedThreadPool(3);
CountDownLatch countDownLatch = new CountDownLatch(3); //线程计数器,就是线程的个数
try {
executorService.execute(new Runnable() {
//不是异步的没有返回值
@Override
public void run() {
try {
Thread.sleep(1000L);
countDownLatch.countDown();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("111");
}
});
//一个线程池,三个线程,执行三个任务,只有当这三个任务执行完以后,主线程才会执行
executorService.execute(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(2000L);
countDownLatch.countDown();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("222");
}
});
executorService.execute(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(3000L);
countDownLatch.countDown();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("333");
}
});
//主线程阻塞,如果线程池之间也是需要前后结果的话,应该也是阻塞的
countDownLatch.await(); //只有当countDown变为0的时候,主线程才不是阻塞的
} finally {
executorService.shutdown();
}
}

最后

以上就是过时自行车为你收集整理的多线程-线程池执行多业务逻辑的全部内容,希望文章能够帮你解决多线程-线程池执行多业务逻辑所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部