Files
javademos/lanes/src/StructuredHubNew.java
T

22 lines
915 B
Java

import java.util.concurrent.StructuredTaskScope;
/**
* The same "first result wins" example as StructuredHub, with the factory method under its Java 26 / 27 name:
* anySuccessfulResultOrThrow() (25) became anySuccessfulOrThrow() (26 and 27). Still a preview API.
* Chapter: docs/14-lanes-21-to-25.md
*/
public class StructuredHubNew {
static String firstSuccess() throws Exception {
try (var scope = StructuredTaskScope.open(StructuredTaskScope.Joiner.<String>anySuccessfulOrThrow())) {
scope.fork(() -> { Thread.sleep(200); return "slow"; });
scope.fork(() -> "fast");
return scope.join();
}
}
public static void main(String[] args) throws Exception {
System.out.println("java.version = " + System.getProperty("java.version"));
Check.that(firstSuccess().equals("fast"), "anySuccessfulOrThrow(): the first result wins");
}
}