概述
/** * 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(); } }
最后
以上就是过时自行车为你收集整理的多线程-线程池执行多业务逻辑的全部内容,希望文章能够帮你解决多线程-线程池执行多业务逻辑所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复