Summary
This lesson concludes this chapter on condition variables with a summary and some concluding remarks.
We have seen the introduction of another important synchronization primitive beyond locks: condition variables. By allowing threads to sleep when some program state is not as desired, CVs enable us to neatly solve a number of important synchronization problems, including the famous (and still important) producer/consumer problem, as well as covering conditions. A more dramatic concluding sentence would go here, such as
Get hands-on with 1400+ tech skills courses.