Chapter 8. Leveraging Asynchronous Tasks

The term asynchronous programming refers to defining tasks that are executed asynchronously on different threads of execution. While this is similar to multithreading, there are a few subtle differences. Firstly, a thread or a future will remain allocated to a single operating system thread until completion. This leads to the fact that is there can only be a limited number of futures that can be executed concurrently, depending on the number of processing cores available. On the other hand, asynchronous tasks are scheduled for execution on threads from a thread pool. This way, a program can have thousands, or even millions of asynchronous tasks running concurrently. An asynchronous task can be suspended ...

Get Clojure: High Performance JVM Programming now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.