C++ Reactive Programming
上QQ阅读APP看书,第一时间看更新

Summary

In this chapter, we discussed the threading library available in C++ standard libraries. We saw how to launch and manage a thread, and discussed different aspects of the threading library, such as how to pass arguments into a thread, ownership management of a thread object, sharing of data between threads, and so on. The C++ standard threading library can execute most callable objects as threads! We have seen the importance of all the available callable objects in association with threads, such as std::function, Lambdas, and functors. We discussed the synchronization primitives available in the C++ standard library, starting with the simple std::mutex, the use of the RAII idiom to protect mutexes from unhandled exit cases to avoid explicit unlock, and using classes such as std::lock_guard and std::unique_lock. We also discussed condition variables (std::condition_variable) in the context of thread synchronization. This chapter lays a good foundation for concurrency support introduced in modern C++ to kickstart the journey of this book into functional idioms.

In the following chapter, we will be covering more concurrency library features in C++, such as task-based parallelism and lock-free programming.