c++并发编程
文章平均质量分 78
并发编程
爱写代码的辰洋
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
std::atomic<bool> 与 std::atomic_flag 的核心区别
都是用于原子操作的模板类型,但它们在实现、功能和使用场景上有显著差异。是 C++ 中唯一保证无锁的原子类型,其底层通常直接映射到硬件的原子指令(如 x86 的。是否无锁取决于编译器和目标平台。通常用于实现底层同步原语(如自旋锁)。在 C++ 多线程编程中,指令),无需依赖锁机制。原创 2025-02-27 13:54:38 · 685 阅读 · 0 评论 -
什么是指令重排(Reordering)
单线程中,重排不会改变程序逻辑;但多线程中,线程间交互的隐含顺序可能被破坏。原创 2025-02-27 12:26:02 · 1269 阅读 · 0 评论 -
如何理解内存序
掌握内存序需要结合代码实践和分析工具(如ThreadSanitizer)。建议通过编写多线程代码并尝试不同内存序,观察其行为差异,逐步加深理解。理解内存序(Memory Order)是掌握多线程编程和原子操作的关键,尤其在涉及并发数据访问时。,确保不同线程对共享数据的操作按照预期执行,避免因编译器或硬件优化导致的数据不一致问题。C++11起定义了6种内存序原创 2025-02-27 12:24:11 · 516 阅读 · 0 评论 -
一篇看懂compare_exchange_weak和compare_exchange_strong的区别
通过这种方式,CAS 操作能够高效地协调多线程对共享资源的访问。原创 2025-02-27 12:21:22 · 1126 阅读 · 0 评论
分享