gpt4 book ai didi

java - 向单线程目录中所有文件迭代器实用函数添加多线程可能性

转载 作者:行者123 更新时间:2023-11-29 07:41:51 26 4
gpt4 key购买 nike

我有一个连续(单线程)迭代文件目录的函数,将所有制表符缩进更改为三个空格缩进。

我将它用作我对多线程的第一次尝试。 (我是大部分 Java Concurrency in Practice ......很惊讶它现在已经八岁了。)

为了保持它当前的单线程功能,但增加多线程的额外可能性,我正在考虑更改函数以接受额外的 Executor参数,原来的单线程函数现在是对它的调用,传入 single threaded executor .

这样做是否合适?

最佳答案

如果您使用的是 Java 8,我发现 parallelStream 是实现多线程的最简单方法

    List<File> files = Arrays.asList(getDirectoryContents());
files.parallelStream().forEach( file -> processFile(file));

如果你想在单线程和多线程之间切换,你可以简单地传递一个 boolean 标志

    List<File> files = Arrays.asList(getDirectoryContents());
if(multithreaded){
files.parallelStream().forEach( file -> processFile(file));
}else{
files.stream().forEach(file -> processFile(file));
}

我希望我能为 Java 7 提供帮助,但我一夜之间就从 Java 5 转到了 8。 :) Java 8 太值得了。

关于java - 向单线程目录中所有文件迭代器实用函数添加多线程可能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29263326/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com