My project might help those getting started with Project Loom in JDK 19. A set of small, self-contained examples (SSCCEs) that can accelerate your own experimentation, especially if using SDKMan!. No IDE, no Gradle, no Maven.
Examples illustrate both "virtual threads" (preview status) and structured concurrency (incubator status).
Some of the more interesting examples:
Example #7 launches two tasks with a deadline to complete.
Example #8 implements a custom `StructuredTaskScope` that acts as `invokeSome(n)`. i.e. for M tasks, success is defined when N tasks complete.
Example #10 creates a small hierarchy within a `StructuredTaskScope` and then illustrates that `jcmd` can be used to interrogate the JVM for parent-child relationships.
The examples are highly contrived (often from the JEP docs), and NOT production-grade!
More generally, search for works by the authors: Neal Ford, Mark Richards. Similarly, follow Martin Fowler. They all have many articles, videos, on architecture.
I second the motion for ADRs (resources below). A side-benefit is that they use Markdown: plain and simple. Try to use Markdown (or similar) as much as possible. Once you are used to it, it is hard to go back to the insane formatting friction in a word processor.
This is a major step forward (recall that the May 8 vote was not approved). Though there is another vote (Final Approval Ballot), it appears that JDK 9 is on track for September 2017 release.
re: comments in vote log. Thanks for pointing that out! Possibly because it is 4:30 am, I didn't realize the text area contained lots of info. Readers: be sure to stretch it out to see everything.
Examples illustrate both "virtual threads" (preview status) and structured concurrency (incubator status).
Some of the more interesting examples:
Example #7 launches two tasks with a deadline to complete.
Example #8 implements a custom `StructuredTaskScope` that acts as `invokeSome(n)`. i.e. for M tasks, success is defined when N tasks complete.
Example #10 creates a small hierarchy within a `StructuredTaskScope` and then illustrates that `jcmd` can be used to interrogate the JVM for parent-child relationships.
The examples are highly contrived (often from the JEP docs), and NOT production-grade!