深入两种高级并发设计模式
深入探讨这两种高级并发设计模式。它们是从架构层面解决并发问题的利器,能极大地简化程序设计,减少甚至消除对底层同步原语(如锁、内存屏障)的依赖。
模式一:避免共享
核心思想是 “不共享,则无需同步”。如果两个线程从不访问同一块可变内存,那么它们之间就永远不会发生数据竞争、可见性或有序性问题。
- 线程局部存储
是什么:线程局部存储是一种机制,允许变量在每个线程中都有一个独立的、私有的实例。一个线程对它自己的TLS副本的修改,对其他线程完全不可见,因此也绝对安全。
如何实现:
· C++11及以后: 使用 thread_local 关键字。
#include <iostream>
#include <thread>thread_local