加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

ExecutorService与invokeAll()和Future在java中

发布时间:2020-12-14 16:22:32 所属栏目:Java 来源:网络整理
导读:掌握以下代码: ExecutorService executor = Executors.newFixedThreadPool(10); Collection collection = new ArrayList(); for (int n=1; n100; n++) collection.add(new MyThread(n)); try { ListFutureBoolean futures = executor.invokeAll(collection)
掌握以下代码:
ExecutorService executor = Executors.newFixedThreadPool(10);
    Collection collection = new ArrayList();
    for (int n=1; n<100; n++)
        collection.add(new MyThread(n));

    try {
        List<Future<Boolean>> futures = executor.invokeAll(collection);

        for(Future<Boolean> future : futures){
            future.get();
            if (future.isDone()) {
                System.out.println("true");
            }
            else
                System.out.println("false");
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

如果以上是正确的?
如果所有的future.isDone()都为true,那么所有的线程都已经完成了?
我如何做一个国旗,以确保所有的都完成了?

解决方法

要检查一切是否正确,可以这样做:
boolean works=true;
  for(Future<Boolean> future : futures){
        future.get();
        if (future.isDone()) {
            System.out.println("true");
        }
        else{
            System.out.println("false");works=false;
        }
    }
if(works)System.out.println("yea it works")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读