Skip to content
This repository has been archived by the owner on Jan 27, 2021. It is now read-only.

Latest commit

 

History

History
11 lines (7 loc) · 980 Bytes

File metadata and controls

11 lines (7 loc) · 980 Bytes

第4章 同步操作

本章主要内容

  • 带有future的等待
  • 在限定时间内等待
  • 使用同步操作简化代码

上一章中,我们了解了线程间保护共享数据的方法。当然,我们不仅想要保护数据,还想对单独的线程进行同步。例如,在第一个线程完成前,等待另一个线程执行完成。通常,线程会等待特定事件发生,或者等待某一条件达成。这可能需要定期检查“任务完成”标识,或将类似的东西放到共享数据中。像这种情况就需要在线程中进行同步,C++标准库提供了一些工具可用于同步,形式上表现为条件变量(condition variables)和future。并发技术规范中,为future添加了非常多的操作,并可与新工具锁存器(latches)(轻量级锁资源)和栅栏(barriers)一起使用。

本章将讨论如何使用条件变量等待事件,介绍future,锁存器和栅栏,以及如何简化同步操作。