10 Concurrency and Parallelism

Racket supports multiple threads of control within a program, thread-local storage, some primitive synchronization mechanisms, and a framework for composing synchronization abstractions. In addition, the racket/future and racket/place libraries provide support for parallelism to improve performance.

    10.1 Threads

      10.1.1 Creating Threads

      10.1.2 Suspending, Resuming, and Killing Threads

      10.1.3 Synchronizing Thread State

      10.1.4 Thread Mailboxes

    10.2 Synchronization

      10.2.1 Events

      10.2.2 Channels

      10.2.3 Semaphores

      10.2.4 Buffered Asynchronous Channels

    10.3 Thread-Local Storage

      10.3.1 Thread Cells

      10.3.2 Parameters

    10.4 Futures

    10.5 Futures Visualizer

      10.5.1 Execution Timeline

      10.5.2 Future Creation Tree

    10.6 Futures Tracing

      10.6.1 Future Performance Logging

    10.7 Places

    10.8 Distributed Places

      10.8.1 Define Remote Server

      10.8.2 Async Bidirectional Channels

      10.8.3 Distributed Places MPI