
多线程编程
文章平均质量分 81
赵民勇
这个作者很懒,什么都没留下…
展开
-
std::thread线程生命周期与线程对象生命周期的联系
std::thread线程生命周期与线程对象生命周期的联系原创 2024-05-17 15:12:56 · 481 阅读 · 0 评论 -
原子操作的实现原理(锁和循环CAS)
1 引言原子(atom)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation)意为”不可被中断的一个或一系列操作” 。在多处理器上实现原子操作就变得有点复杂。本文让我们一起来聊一聊在Inter处理器和Java里是如何实现原子操作的。2 术语定义术语名称 英文 解释 缓存行 Cache line 缓存的最小操作单位 比较并交换 Compare and Swap CAS操作需要输入两个数值,一个旧值(期望操作前...转载 2022-01-25 13:30:55 · 338 阅读 · 0 评论 -
C++11 如何使代码仅执行一次?
1 静态变量结合函数调用方式通常我们使用std::call_once配合std::once_flag使用,这里有更简单的方法——静态变量结合函数调用,如下所示:static auto onece_call = [&]()->int { //onece call code //这里添加需要仅执行一次的代码 return 0;}();c++11后保证多线程中局部静态变量也只会初始化一次。上面代码中最后的小括号表示执行前面定义的lambda函数。2 std...原创 2021-07-14 11:19:34 · 8131 阅读 · 0 评论