► |  | The Racket Reference

1 | Language Model
2 | Notation for Documentation
3 | Syntactic Forms
4 | Datatypes
5 | Structures
6 | Classes and Objects
7 | Units
8 | Contracts
9 | Pattern Matching
10 | Control Flow
11 | Concurrency and Parallelism
12 | Macros
13 | Input and Output
14 | Reflection and Security
15 | Operating System
16 | Memory Management
17 | Unsafe Operations
18 | Running Racket
| Bibliography
| Index

► | 11 | Concurrency and Parallelism

11.1 | Threads
11.2 | Synchronization
11.3 | Thread-Local Storage
11.4 | Futures
11.5 | Places
11.6 | Engines
11.7 | Machine Memory Order

▼ | 11.2 | Synchronization

11.2.1 | Events
11.2.2 | Channels
11.2.3 | Semaphores
11.2.4 | Buffered Asynchronous Channels

top ← prev up next →

#### 11.2`` Synchronization

Racket’s synchronization toolbox spans four 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.

- future semaphores — a simple synchronization primitive for use with futures.

11.2.1 Events
11.2.2 Channels
11.2.3 Semaphores
11.2.4 Buffered Asynchronous Channels
11.2.4.1 Creating and Using Asynchronous Channels
11.2.4.2 Contracts and Impersonators on Asynchronous Channels

top ← prev up next →