• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2023-02-27 12:08 Aet 隐藏边栏 |   抢沙发  4 
文章评分 2 次,平均分 5.0

原子操作

概念

  1. 所谓原子操作是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会有任何context switch
  2. 原子操作可以保证正在工作的动作不被打断,即一旦开始,持续到结束。对比互斥锁优势在于,原子操作是在C/C++的层面,是无锁操作,既能解决并发问题,又不会导致死锁

原理

  1. X86平台,CPU提供了在指令执行期间对总线加锁的手段。
    1. CPU有一根引线#HLOCK pin连接到北桥,如果汇编语言的程序在一条指令前面加上了LOCK前缀,经过汇编以后的机器代码就会使CPU在执行这条指令的时候把#HLOCK pin的电位拉低,持续到这条指令结束时放开,从而把线程锁住
    2. 这样,同一线程上别的CPU就暂时不能通过总线访问内存了,保证了这条指令在多处理器环境中的原子性

代码

检测内存泄露的工具

VLD

  1. Debug模式,链接vld.lib库,在代码加入头文件

LeakDiag

UMDH

发给子线程的消息主线程能不能捕获

多个子线程,读一个全局布尔变量

shared_ptr循环引用

lambda

windbg

windows调试工具

CoCreateInstance实现

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享