We have focused on sequential Dart programs until now. However, most real Dart programs are concurrent.
A web application usually consists of at least two concurrent parts—a client program running in a web browser on a user’s device, and a server program running outside the browser, usually on another computer somewhere across the internet. Many server side programs service many clients simultaneously. These are typical scenarios, but there are many others.
In this chapter, we shall turn our attention to the those features of Dart that support concurrency and distribution. Dart concurrency is based on isolates (8.4), which in turn are built upon futures (8.2) and streams (8.3).
When one invokes ...