这是一个老话题了,推荐一篇文章:

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会卡死相关推荐

  1. 【一张图系列】理解安全上下文

    转载于:https://blog.51cto.com/redsword/1551261

  2. 一张图看懂Funtouch OS 10,全新手机OS发布:应用卡死率降低80%

    图片来自vivo官方

  3. 18张图,详解SpringBoot解析yml全流程

    背景 前几天的时候,项目里有一个需求,需要一个开关控制代码中是否执行一段逻辑,于是理所当然的在yml文件中配置了一个属性作为开关,再配合nacos就可以随时改变这个值达到我们的目的,yml文件中是这样 ...

  4. 两张图看清英伟达RTX 20系列显卡的新变化

    这次的RTX 20系列到底牛X在哪?就拿<战地5>来说,大家先看下面这张图: 这张图有点假,你能看出假在哪儿吗? 你可能会说:这不是已经非常逼真了吗?怎么会假呢? 那么,请看配上RTX 2 ...

  5. 『图解Java并发编程系列』10张图告诉你Java并发多线程那些破事

    目录 线程安全问题 活跃性问题 性能问题 有态度的总结 头发很多的程序员:『师父,这个批量处理接口太慢了,有什么办法可以优化?』架构师:『试试使用多线程优化』第二天头发很多的程序员:『师父,我已经使用 ...

  6. 【机器学习系列】如何将多条ROC曲线画在一张图里,并解决文本遮挡问题

    有的时候我们需要将ROC曲线输出在同一张图中,这样可以更加直观地对比模型:并且我们常常会遇到在图形中有文字相互遮挡的问题,我们可以用adjustText中的adjust_text来实现文本不相互遮挡并 ...

  7. 万字长文,别再说你不懂Linux内存管理了(合辑),30 张图给你安排的明明白白...

    之前写了两篇详细分析 Linux 内存管理的文章,读者好评如潮.但由于是分开两篇来写,而这两篇内容其实是有很强关联的,有读者反馈没有看到另一篇读起来不够不连贯,为方便阅读这次特意把两篇整合在一起,看这 ...

  8. 别再说你不懂Linux内存管理了,10张图给你安排的明明白白!

    来自:后端技术学堂 过去的一周有点魔幻,有印象的有三个新闻:天猫总裁绯闻事件,蘑菇街裁员,不可能打工的周某也放出来了.三件事,两件和互联网行业相关,好像外面的世界很是精彩啊!吃瓜归吃瓜,学习还是不能落 ...

  9. 35张图,看懂肠道和大脑的魔性关系,绝对涨知识!

    本文转载自"热心肠研究院",己获授权. 有些事真的越来越魔性了! 英语里,有一个短语叫"Follow your gut",Follow追随,your你的,gut ...

最新文章

  1. [转载]数据库设计三大范式应用实例剖析
  2. Android Studio的git功能的使用
  3. c语言中把每个字母向前移1位,C语言:将字符串中的前导*号全部移到字符串的尾部。...
  4. Azkaban的介绍、安装与使用
  5. 用java实现etcd分布式锁_etcd分布式锁及事务
  6. Pads9.5的PCB文件转allegro16.6的BRD文件方法
  7. DIY基于Arduino的CNC绘图机
  8. 怎么制作真人qq秀_QQ 首款捏脸产品「卡噗」上线,这是微信也能玩的 3D 厘米秀...
  9. 怎么克隆计算机的mac,MAC地址克隆方法
  10. vbs的msgbox的恶搞文件
  11. 让一台电脑死机至少需要几行代码
  12. 【免费个人网站制作】免费个人网站如何制作?
  13. 我整理的ubuntu开源软件列表,适合于极客
  14. EasyExcel 三分钟搞定导入导出
  15. QQ邮箱账号异常登录
  16. IE可以上网其他浏览器上不了
  17. cf1149E. Election Promises
  18. 关于Virtual clock
  19. 用Echarts实现中国地图
  20. 怎样在Mysql中直接储存图片(转)

热门文章

  1. 收集全面WIN7共享设置
  2. 第 28 小时项目管理过程实践和案例分析
  3. 孙兴慜已飞抵阿联酋 能否出战国足将视情况而定
  4. 深入理解ajax系列第五篇——进度事件
  5. MySQL抓包工具:MySQL Sniffer【转】
  6. 软件测试--测试Demo
  7. grunt live reload 配置记录
  8. PHP $_REQUEST获取表单提交的代码
  9. 点滴积累--工作总结
  10. OpenCV成长之路:图像滤波