In this chapter, we have discussed facilities provided by the standard library to write task-based parallelism. We saw how to use futures and promises with std::packaged_task
and std::async
. We discussed the new multi-threading-aware memory model that is available with the Modern C++ language. After that, we covered atomic types, and operations associated with them. The most important thing that we learned about are the various memory-ordering semantics of the language. In a nutshell, this particular chapter and the previous one will enable us to reason about the concurrency aspects of the reactive programming model.
In the following chapter, we will shift our attention from language and concurrency to the standard interface of the reactive programming model. We will be covering Observables!