chaoqi2080 / Cpp-Concurrency-in-Action-2ed

📚 C++ Concurrency in Action 2ed 笔记:C++11/14/17 多线程技术

Home Page:https://downdemo.gitbook.io/cpp-concurrency-in-action-2ed/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

C++11 引入了 Boost 线程库作为标准线程库,作者 Anthony Williams 为介绍其特性,于 2012 年出版了 C++ Concurrency in Action 一书,并顺应 C++17 于 2019 年 2 月出版了第二版C++ Concurrency in Action 2ed 前五章介绍了 C++11 线程库 API 的基本用法,后六章从实践角度介绍了并发编程的设计**,相比第一版多介绍了一些 C++17 特性,如 std::scoped_lockstd::shared_mutex,并多出一章(第十章)介绍 C++17 标准库并行算法。本书适合 C++ 多线程初学者,此为个人笔记,仅供参考,更详细内容见原书

相关链接

C++11线程库API

  1. 线程管理(Managing thread)
  2. 线程间共享数据(Sharing data between thread)
  3. 同步并发操作(Synchronizing concurrent operation)
  4. C++ 内存模型和基于原子类型的操作(The C++ memory model and operations on atomic type)

并发编程实践

  1. 基于锁的并发数据结构的设计(Designing lock-based concurrent data structure)
  2. 无锁并发数据结构的设计(Designing lock-free concurrent data structure)
  3. 并发代码的设计(Designing concurrent code)
  4. 高级线程管理(Advanced thread management)
  5. 并行算法(Parallel algorithm)
  6. 多线程应用的测试与调试(Testing and debugging multithreaded application)

原书目录

  1. 你好,C++ 中的并发世界!
  2. 线程管理
  3. 线程间共享数据
  4. 同步并发操作
  5. C++ 内存模型和基于原子类型的操作
  6. 基于锁的并发数据结构的设计
  7. 无锁并发数据结构的设计
  8. 并发代码的设计
  9. 高级线程管理
  10. 并行算法
  11. 多线程应用的测试与调试

标准库相关头文件

头文件 说明
<chrono> 时钟
<condition_variable> 条件变量
<atomic> 原子类型和原子操作
<future> 异步处理的结果
<mutex>
<ratio> 编译期有理数算数
<thread> 线程
<execution> 标准库算法执行策略

并发库对比

C++11 Thread

特性 API
thread std::thread
mutex std::mutexstd::lock_guardstd::unique_lock
condition variable std::condition_variablestd::condition_variable_any
atomic std::atomicstd::atomic_thread_fence
future std::futurestd::shared_future
interruption

Boost Thread

特性 API
thread boost::thread
mutex boost::mutexboost::lock_guardboost::unique_lock
condition variable boost::condition_variableboost::condition_variable_any
atomic
future boost::futureboost::shared_future
interruption thread::interrupt

POSIX Thread

特性 API
thread pthread_createpthread_detachpthread_join
mutex pthread_mutex_lock、pthread_mutex_unlock
condition variable pthread_cond_waitpthread_cond_signal
atomic
future
interruption pthread_cancel

Java Thread

特性 API
thread java.lang.Thread
mutex synchronized blocks
condition variable java.lang.Object.waitjava.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

About

📚 C++ Concurrency in Action 2ed 笔记:C++11/14/17 多线程技术

https://downdemo.gitbook.io/cpp-concurrency-in-action-2ed/

License:Apache License 2.0


Languages

Language:C++ 100.0%