Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 线程.Lock.acquire()在这个实现中是如何阻塞的?_Python_Multithreading_Python 3.x_Python Multithreading - Fatal编程技术网

Python 线程.Lock.acquire()在这个实现中是如何阻塞的?

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的阻塞行为的实现在哪里?您链接的函数是接口的虚拟实现。这意味着它什么也不做。禁止阻塞。当您实际上不使用线程时,可以使用它,以简化在线程和非线程环境中都可以工作的代码的编写 您要查看的函数位于中 但是它没有太多功能,因

在Python3.4.3上,在锁定状态设置为unlocked之前,我无法理解块是如何被锁定的

threading.Lock
似乎是上面链接的
\u dummy\u thread.LockType
的一个实现


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

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

您要查看的函数位于中

但是它没有太多功能,因为实际的实现是在
\u thread
模块中用C完成的。它是在python解释器的编译时选择的。您可以在这里找到for和for的实现


也就是说,Windows实现和pthread实现在引擎盖下使用。

在提供的链接上,我看不到它在哪里阻塞。你能解释一下吗?我添加了更多细节,包括实际行为的实现位置。它在C子模块中。正是我希望找到的!