为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕哥6287543 2019-03-21 18:15:42
代码结构描述如下: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,都不太合适,有没有更好的解决方案呢?
查看完整描述

3 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

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


查看完整回答
反对 回复 2019-04-25
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

生产->消费->生产->消费....

这样的要求为毛要开线程


查看完整回答
反对 回复 2019-04-25
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

消费者全部消费完数据之后,再执行for循环的第二次循环,那你开线程的意义在哪里?,直接同步执行不就行了


查看完整回答
反对 回复 2019-04-25
  • 3 回答
  • 0 关注
  • 1215 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号