Python 线程.Lock.acquire()在这个实现中是如何阻塞的?
在Python3.4.3上,在锁定状态设置为unlocked之前,我无法理解块是如何被锁定的Python 线程.Lock.acquire()在这个实现中是如何阻塞的?,python,multithreading,python-3.x,python-multithreading,Python,Multithreading,Python 3.x,Python Multithreading,在Python3.4.3上,在锁定状态设置为unlocked之前,我无法理解块是如何被锁定的 threading.Lock似乎是上面链接的\u dummy\u thread.LockType的一个实现 这段代码似乎除了阻塞之外什么都做。如果我是正确的,那么threading.Lock的阻塞行为的实现在哪里?您链接的函数是接口的虚拟实现。这意味着它什么也不做。禁止阻塞。当您实际上不使用线程时,可以使用它,以简化在线程和非线程环境中都可以工作的代码的编写 您要查看的函数位于中 但是它没有太多功能,因
threading.Lock
似乎是上面链接的\u dummy\u thread.LockType
的一个实现
这段代码似乎除了阻塞之外什么都做。如果我是正确的,那么threading.Lock的阻塞行为的实现在哪里?您链接的函数是接口的虚拟实现。这意味着它什么也不做。禁止阻塞。当您实际上不使用线程时,可以使用它,以简化在线程和非线程环境中都可以工作的代码的编写 您要查看的函数位于中 但是它没有太多功能,因为实际的实现是在
\u thread
模块中用C完成的。它是在python解释器的编译时选择的。您可以在这里找到for和for的实现
也就是说,Windows实现和pthread实现在引擎盖下使用。在提供的链接上,我看不到它在哪里阻塞。你能解释一下吗?我添加了更多细节,包括实际行为的实现位置。它在C子模块中。正是我希望找到的!