java - for循环中异步转同步如何改造?

查看:1272
本文介绍了java - for循环中异步转同步如何改造?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

代码结构描述如下:

for (int i = 0; i < 5; i++) {
    new Thread(new Runnable(){}).start();
    new Thread(new Runnable(){}).start();
}

for循环中的两个线程,前者是生产者,后者是消费者,他们通过定义一个:
public static BlockingQueue<Object> taskQueue = new ArrayBlockingQueue<Object>(2500);
联系起来,现在想for循环第一次执行完之后,两个线程的生产者全生产完数据,消费者全部消费完数据之后,再执行for循环的第二次循环。
在对代码结构改动最小的情况下,我考虑了callable countdownlatch,都不太合适,有没有更好的解决方案呢?

解决方案

改造一下试试使用java.util.concurrent.CompletionService

这篇关于java - for循环中异步转同步如何改造?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆