一张图系列——为什么在DllMain里面创建了线程并Wait会卡死
这是一个老话题了,推荐一篇文章:
http://blog.csdn.net/breaksoftware/article/details/8150476#0-tsina-1-83826-397232819ff9a47a7b7e80a40613cfe1
这里简单画图阐述核心问题所在:
关键在于ntdll!LdrpLoaderLock这把锁。
1、在使用DLL_PROCESS_ATTATCH进入DllMain之前当前线程会获取这把锁。
2、如果在DllMain里面创建了线程,新线程初始化过程中也会去获取这把锁。
3、如果仅仅CreateThead就返回后,当前线程就很快释放该锁,随后新创建的线程也能顺利的获取到该锁。
4、但如果CreateThread之后使用了Wait等待该线程结束,那当前线程没有释放LdrpLoaderLock,新线程又获取不到,进入等待。就会导致卡死。
所以,最好别在DllMain中创建线程,即使创建了也千万别等待。
最后,一张图看清个中关系(图片右键新标签页打开可看完整高清大图):
转载于:https://www.cnblogs.com/xuanyuan/p/5412136.html
一张图系列——为什么在DllMain里面创建了线程并Wait会卡死相关推荐
- 【一张图系列】理解安全上下文
转载于:https://blog.51cto.com/redsword/1551261
- 一张图看懂Funtouch OS 10,全新手机OS发布:应用卡死率降低80%
图片来自vivo官方
- 18张图,详解SpringBoot解析yml全流程
背景 前几天的时候,项目里有一个需求,需要一个开关控制代码中是否执行一段逻辑,于是理所当然的在yml文件中配置了一个属性作为开关,再配合nacos就可以随时改变这个值达到我们的目的,yml文件中是这样 ...
- 两张图看清英伟达RTX 20系列显卡的新变化
这次的RTX 20系列到底牛X在哪?就拿<战地5>来说,大家先看下面这张图: 这张图有点假,你能看出假在哪儿吗? 你可能会说:这不是已经非常逼真了吗?怎么会假呢? 那么,请看配上RTX 2 ...
- 『图解Java并发编程系列』10张图告诉你Java并发多线程那些破事
目录 线程安全问题 活跃性问题 性能问题 有态度的总结 头发很多的程序员:『师父,这个批量处理接口太慢了,有什么办法可以优化?』架构师:『试试使用多线程优化』第二天头发很多的程序员:『师父,我已经使用 ...
- 【机器学习系列】如何将多条ROC曲线画在一张图里,并解决文本遮挡问题
有的时候我们需要将ROC曲线输出在同一张图中,这样可以更加直观地对比模型:并且我们常常会遇到在图形中有文字相互遮挡的问题,我们可以用adjustText中的adjust_text来实现文本不相互遮挡并 ...
- 万字长文,别再说你不懂Linux内存管理了(合辑),30 张图给你安排的明明白白...
之前写了两篇详细分析 Linux 内存管理的文章,读者好评如潮.但由于是分开两篇来写,而这两篇内容其实是有很强关联的,有读者反馈没有看到另一篇读起来不够不连贯,为方便阅读这次特意把两篇整合在一起,看这 ...
- 别再说你不懂Linux内存管理了,10张图给你安排的明明白白!
来自:后端技术学堂 过去的一周有点魔幻,有印象的有三个新闻:天猫总裁绯闻事件,蘑菇街裁员,不可能打工的周某也放出来了.三件事,两件和互联网行业相关,好像外面的世界很是精彩啊!吃瓜归吃瓜,学习还是不能落 ...
- 35张图,看懂肠道和大脑的魔性关系,绝对涨知识!
本文转载自"热心肠研究院",己获授权. 有些事真的越来越魔性了! 英语里,有一个短语叫"Follow your gut",Follow追随,your你的,gut ...
最新文章
- [转载]数据库设计三大范式应用实例剖析
- Android Studio的git功能的使用
- c语言中把每个字母向前移1位,C语言:将字符串中的前导*号全部移到字符串的尾部。...
- Azkaban的介绍、安装与使用
- 用java实现etcd分布式锁_etcd分布式锁及事务
- Pads9.5的PCB文件转allegro16.6的BRD文件方法
- DIY基于Arduino的CNC绘图机
- 怎么制作真人qq秀_QQ 首款捏脸产品「卡噗」上线,这是微信也能玩的 3D 厘米秀...
- 怎么克隆计算机的mac,MAC地址克隆方法
- vbs的msgbox的恶搞文件
- 让一台电脑死机至少需要几行代码
- 【免费个人网站制作】免费个人网站如何制作?
- 我整理的ubuntu开源软件列表,适合于极客
- EasyExcel 三分钟搞定导入导出
- QQ邮箱账号异常登录
- IE可以上网其他浏览器上不了
- cf1149E. Election Promises
- 关于Virtual clock
- 用Echarts实现中国地图
- 怎样在Mysql中直接储存图片(转)