Scala Future and Promise classes give you powerful ways to handle
asynchronous processing, including nonblocking ways to organize and sequence
events. The async / await constructs, implemented as a macro, make it even
easier to write nonblocking event handling in Scala. This tutorial shows you
the basic Future and Promise techniques in action, then demonstrates how async
/ await can convert what looks like simple blocking code to nonblocking
execution.

The Java platform provides excellent support for concurrent programming in all JVM-based languages. Scala extends the concurrency support in the Java language with even more ways to share work among processors and coordinate the results. This first article in a new series on JVM concurrency covers the state of the art in concurrent programming in Java 7 and introduces some of the Scala enhancements. The article also helps prepare the way for understanding concurrency features in Java 8.

Java 8 incorporates new language features and added classes that give
you easier ways to construct programs, including concurrent programs. Learn
about new, powerful parallel-processing support in the language made possible
by Java 8 extensions, including CompletableFuture and streams. You'll
recognize similarities between these new features and some of the Scala
capabilities that you explored in the first article of this series.

The CompletableFuture class added in Java 8 gives you new ways to handle
the completion of asynchronous processing, including nonblocking ways to
compose and combine events. This article helps you understand the differences
between blocking and nonblocking approaches to handling completions and gives
you some reasons to prefer nonblocking approaches.

Actor applications require a different style of programming from the
linear approach that is used for single-threaded applications. Go deeper into
structuring systems in terms of actors and messages from Scala code, using the
Akka toolkit and runtime.

The actor model, a long-established approach to concurrent programming,
gives you an easy way to build applications for high concurrency and
scalability. Learn about the actor model and start working in Scala or Java
with the Akka implementation of the model.