Java并行流parallelStream()下InheritableThreadLocal引起的问题
引起问题的代码。
List orgs00 = Arrays.asList(
new Org("aaa"),
new Org("bbb"),
new Org("aa0")
);
List orgs = orgs00.parallelStream()
.map(org -> {
// 模拟从数据库中获取 Org 对象的操作
// 这里可以是实际的数据库查询操作
ConditionImpl cmd = new ConditionImpl();
cmd.op("orgName", Op.eq, org.getOrgName());
// cmd.orderBy("name", OrderType.ASC);
System.out.println("-----------------111111111111111111111111-");
List select1 = getSuidRich().select(new Org(), cmd); //语句1:这句会调用数据库
return new Org(org.getOrgName());
})
.collect(Collectors.toList());
问题:语句1调用的方法有条词句:
private static ThreadLocal>> sqlPreValueLocal;
经过orgs00.parallelStream().map()) 执行调用语句1,sqlPreValueLocal是同一个本地变量吗?

最低0.47元/天 解锁文章
1487

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



