gpt4 book ai didi

windows - OS Loaderlock 的工作原理

转载 作者:可可西里 更新时间:2023-11-01 10:40:22 25 4
gpt4 key购买 nike

我试图更详细地了解操作系统加载器锁是如何与 Windows 中的 DLL 加载和卸载相关的。

我知道当创建/销毁新线程和/或加载/卸载新 DLL 时,每个加载的 DLL 都会收到通知。

那么这是否意味着 DllMain 函数在锁内运行,并且在它运行时没有其他线程可以访问它,如果您要在该函数中创建另一个线程,您可能会挂起进程甚至操作系统?

我的理解正确吗?

是否有某处文章对此进行了解释?

最佳答案

A deadlock当两个线程尝试以不同的顺序获取两个锁时,就会发生这种情况。

  • 线程A获得锁A,然后尝试获得锁B
  • 与此同时,线程 B 获得锁 B,然后尝试获得锁 A

正在运行 DllMain 的线程已经获得了一个隐式 O/S 锁:因此他们 (Microsoft) 认为该线程尝试获得任何其他第二个锁可能是不安全的(例如,因为不同的线程可能已经拥有该锁并且当前被隐式 O/S 锁阻塞)。

关于windows - OS Loaderlock 的工作原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3079126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com