《C++ Concurrency in Action 2ed》由C++11线程库作者所作,前五章介绍了C++11线程库API的基本用法,后六章从实践角度介绍了并发编程的设计**。相比第一版,第二版多介绍了一些C++17特性,如std::scoped_lock、std::shared_mutex,并多出一章(第十章)介绍C++17标准库并行算法。
- 线程管理(Managing thread)
- 线程间共享数据(Sharing data between thread)
- 同步并发操作(Synchronizing concurrent operation)
- C++内存模型和基于原子类型的操作(The C++ memory model and operations on atomic type)
- 基于锁的并发数据结构的设计(Designing lock-based concurrent data structure)
- 无锁并发数据结构的设计(Designing lock-free concurrent data structure)
- 并发代码的设计(Designing concurrent code)
- 高级线程管理(Advanced thread management)
- 并行算法(Parallel algorithm)
- 多线程应用的测试与调试(Testing and debugging multithreaded application)
- 你好,C++中的并发世界!
- 线程管理
- 线程间共享数据
- 同步并发操作
- C++内存模型和基于原子类型的操作
- 基于锁的并发数据结构的设计
- 无锁并发数据结构的设计
- 并发代码的设计
- 高级线程管理
- 并行算法
- 多线程应用的测试与调试
头文件 | 说明 |
---|---|
<chrono> | 时钟 |
<condition_variable> | 条件变量 |
<atomic> | 原子类型和原子操作 |
<future> | 异步处理的结果 |
<mutex> | 锁 |
<ratio> | 编译期有理数算数 |
<thread> | 线程 |
<execution> | 标准库算法执行策略 |
特性 | API |
---|---|
thread | std::thread |
mutex | std::mutex、std::lock_guard、std::unique_lock |
condition variable | std::condition_variable、std::condition_variable_any |
atomic | std::atomic、std::atomic_thread_fence |
future | std::future、std::shared_future |
interruption | 无 |
特性 | API |
---|---|
thread | boost::thread |
mutex | boost::mutex、boost::lock_guard、boost::unique_lock |
condition variable | boost::condition_variable、boost::condition_variable_any |
atomic | 无 |
future | boost::future、boost::shared_future |
interruption | boost::thread::interrupt |
特性 | API |
---|---|
thread | pthread_create、pthread_detach、pthread_join |
mutex | pthread_mutex_lock、pthread_mutex_unlock |
condition variable | pthread_cond_wait、pthread_cond_timedwait |
atomic | 无 |
future | 无 |
interruption | pthread_cancel |
特性 | API |
---|---|
thread | java.lang.Thread |
mutex | synchronized blocks |
condition variable | java.lang.Object.wait、java.lang.Object.notify |
atomic | volatile变量、java.util.concurrent.atomic |
future | java.util.concurrent.Future |
interruption | java.lang.Thread.interrupt |
线程安全的容器 | java.util.concurrent中的容器 |
线程池 | java.util.concurrent.ThreadPoolExecutor |