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 the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.