11.2 Synchronization
Racket’s synchronization toolbox spans three layers:
synchronizable events —
a general framework for synchronization; channels —
a primitive that can be used, in principle, to build most other kinds of synchronizable events (except the ones that compose events); and semaphores —
a simple and especially cheap primitive for synchronization.