学习 C++11 多线程并发编程的过程中编写的一些 Demo,用于演示 C++11 标准线程库的用法。
- spinlock/:使用
std::atomic_flag
实现一个简单的自旋锁。 - threadsafe_queue/:使用
std::mutex
和std::condition_variable
实现一个简单的线程安全的队列。 - thread_pool/:使用
std::packaged_task
和std::future
实现一个简单的线程池。 - producer_consumer/:基于有限阻塞队列实现生产者消费者模型。
编译环境:
- Ubuntu 22.04
- g++ 11.3.0
- C++17
主要参考资料:《C++ 并发编程实战》(第二版)。
- 线程安全队列的无锁实现。