开发者社区 问答 正文

有没有更好的并行循环方式

我想并行化此代码:

try { for (int i = 0; i < 10000; i++) { new File(String.valueOf(i)).createNewFile(); } } catch (IOException e) { e.printStackTrace(); } 然后将其重写为:

ArrayList fileNames = new ArrayList<>(); for (int i = 0; i < 10000; i++) { fileNames.add(String.valueOf(i)); } fileNames.parallelStream().forEach(i -> new File(i).createNewFile()); 但是,有没有更好的方法呢?

展开
收起
小六码奴 2019-10-09 16:43:14 742 分享 版权
1 条回答
写回答
取消 提交回答
  • 尝试IntStream在parallel():

    IntStream.range(0, 10000).parallel().forEach(i -> { try { new File(String.valueOf(i)).createNewFile(); } catch (IOException e) { e.printStackTrace(); } }); 但是由于磁盘操作,效率不会很高

    2019-10-09 16:44:15
    赞同 展开评论
问答地址: