gpt4 book ai didi

python - threading.Lock.acquire() 在此实现中如何阻塞?

转载 作者:太空宇宙 更新时间:2023-11-03 17:28:10 26 4
gpt4 key购买 nike

在 Python 3.4.3 上,我无法理解 threading.Lock.acquire() 如何阻塞,直到锁定状态设置为解锁。

threading.Lock 似乎是上面链接的 _dummy_thread.LockType 的实现。

这段代码似乎除了阻塞之外什么也没做。如果我是正确的,threading.Lock 的阻塞行为的实现在哪里?

最佳答案

您链接的函数是接口(interface)的虚拟实现。这意味着它什么也不做。没有阻塞。当您实际不使用线程时使用它,以简化可以在线程和非线程环境中工作的代码的编写。

您要查看的函数在 threading.py

不过它并没有太多内容,因为实际的实现是在 _thread 模块中用 C 语言完成的。它是在 python 解释器编译时选择的。您可以在这里找到 pthread 的实现和 windows .

即,Windows 实现使用 WaitForSingleObjectEx并且 pthread 实现使用 sem_timedwait在引擎盖下。

关于python - threading.Lock.acquire() 在此实现中如何阻塞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32290774/

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