Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

In addition to the other comments, the other way to achieve this with loom is to use the new structured concurrency API.

This is overkill for a single task, but for your second example you could do a an invokeAny with something like this:

    try (var scope = new StructuredTaskScope.ShutdownOnSuccess<String>()) {

        scope.fork(() -> doSomething1());
        scope.fork(() -> doSomething2());

        scope.join(); // or if you wanted a 5 second timeout .joinUntil(Instant.now().plusSeconds(5))

        String result = scope.result(); // This will return the result of either doSomething1() or doSomething2(), whichever won the race to finish first.
        ...
    }



https://download.java.net/java/early_access/loom/docs/api/jd...


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: