前言
在稳定版JDK25
中,还是第五次预览了结构化并发(JEP 505)StructuredTaskScope
,但是在JDK25
中,有着些许调整
结构化并发
在JDK25
中,StructuredTaskScope
新增了StructuredTaskScope.open()
方法,用于实例化StructuredTaskScope

csharp
public class StructuredExample {
static String fetchUser() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
return "hello";
}
static String fetchOrder() {
try {
Thread.sleep(1500);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
return "world";
}
public static void main(String[] args) throws Exception {
try (var scope = StructuredTaskScope.<String>open()) {
var userTask = scope.fork(() -> fetchUser());
var orderTask = scope.fork(() -> fetchOrder());
scope.join();
System.out.println(userTask.get() + " - " + orderTask.get());
}
}
}
输出结果为

总结
StructuredTaskScope
在JDK25
中,目前还是预览状态,但是要先使用该语法,可以尝试,结构化并发帮助管理逻辑关联的多个并发任务,可以提高程序的可靠性