Java并发编程全面解析
1. 并行流与顺序流的转换
在Java中,可以通过调用 parallel() 方法将顺序流转换为并行流,同样,调用 sequential() 方法可以将并行流转换为顺序流。例如以下代码:
List<Integer> ints = Arrays.asList(1, 2, 3, 4, 5);
System.out.println(ints.parallelStream().filter(i -> (i % 2) == 0).sequential().isParallel());
这段代码的输出结果是 false 。原因是虽然创建的是并行流,但调用 sequential() 方法后,流就变成了顺序流,所以调用 isParallel() 方法返回 false 。
2. 正确的归约操作
使用并行流时,避免依赖全局状态非常重要,即计算应该是“无副作用”的。下面是一个错误使用流的例子:
import java.util.Arrays;
class StringConcatenator {
public static String result = "";
public static void concatStr(String str) {
res
超级会员免费看
订阅专栏 解锁全文
170万+

被折叠的 条评论
为什么被折叠?



