This chapter discusses techniques for synchronizing concurrent threads in C++, including condition variables, futures/promises, packaged tasks, and chrono time utilities. Condition variables allow threads to wait for some condition to be met or signaled by another thread. Futures and promises are used to return values from asynchronous operations. Packaged tasks separate function execution from result retrieval. Chrono defines types for measuring time and time points. The chapter also briefly mentions message passing between actors as another concurrency method.