11. Concurrency

Many Lisps have offered some means of providing multiple execution strands for quite some time. However, most of them originally implemented it themselves in that the Lisp image managed several “Lisp processes” and had full control over them.1 Only in the last decade or so, parallel to multi-core machines becoming mainstream, did most of the major COMMON LISP implementations move to a new model where these “Lisp processes” became threads that could be distributed over several cores and were no longer scheduled by the Lisp system, but by the underlying operating system.

We will only discuss the latter kind2 here, although most of the content will also apply to the “traditional” approach. And we will interchangeably use words like ...

Get Common Lisp Recipes: A Problem-Solution Approach now with O’Reilly online learning.

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