Intermediate Topic 21 of 51 Concurrency & Parallelism
Futures and Promises Model
Handles for results computed elsewhere.
How it works
Futures and promises separate a computation's result from its producer. A future is a read-only placeholder for a value that will be available later, and a promise is the writable side that the producer completes with a value or an error. Consumers can block waiting for the result, attach continuations that run on completion, compose futures with combinators such as map, then and all and handle failures. The model appears as CompletableFuture in Java, std::future in C++, Promise in JavaScript and Future in Scala and Rust.
Where it is used
Asynchronous APIs, parallel fan-out and fan-in of requests, pipelines of dependent operations and bridging callback-based code use futures.
Common pitfall
Blocking on futures negates their benefit and can deadlock thread pools. Unobserved failures disappear unless handled. Futures are typically single-assignment, so they do not model streams. Eager versus lazy start semantics differ between languages. Cancellation is often not supported cleanly. Compose rather than block, and always attach error handling.
Where it fits in the course
Futures and Promises Model is topic 21 of 51 in Concurrency & Parallelism, rated Intermediate. It follows Coroutines. The next topic is Green Threads.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Concurrency & Parallelism quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Concurrency & Parallelism quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Futures and Promises Model?
Where do people use Futures and Promises Model?
What is the most common mistake with Futures and Promises Model?
What should I learn before this topic?
How can I practice it?
Is Futures and Promises Model hard to learn?
How long does it take to learn Futures and Promises Model?
Which topics are related to Futures and Promises Model?
What should I study after Futures and Promises Model?
Related topics
- Coroutines (Concurrency & Parallelism)
- Green Threads (Concurrency & Parallelism)
- Event-Driven Concurrency (Concurrency & Parallelism)
- Actor Model (Concurrency & Parallelism)
- Client-Server Model (Distributed Systems & Cloud)
- Relational Model (Databases)
- Waterfall Model (Software Engineering)