Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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 '上的psycopg2块;连接';当在一根线里面的时候_Python_Multithreading_Blocking_Psycopg2_Python Multithreading - Fatal编程技术网

Python '上的psycopg2块;连接';当在一根线里面的时候

Python '上的psycopg2块;连接';当在一根线里面的时候,python,multithreading,blocking,psycopg2,python-multithreading,Python,Multithreading,Blocking,Psycopg2,Python Multithreading,我正致力于在Flask之上构建一个web框架,其中包括一个用于数据库操作的包装包,它将同时适用于postgresql和MySQL(我不喜欢使用第三方ORM,这也将帮助我学习一些概念) 我将详细介绍一个小例子,说明标题中描述的问题出现在哪里。我用一组非常简洁的模块模拟了这个问题: c、 派克 b、 派克 a、 派克 如果我运行b.py,我会得到以下结果: creating connection created connection Process finished with exit code

我正致力于在Flask之上构建一个web框架,其中包括一个用于数据库操作的包装包,它将同时适用于postgresql和MySQL(我不喜欢使用第三方ORM,这也将帮助我学习一些概念)

我将详细介绍一个小例子,说明标题中描述的问题出现在哪里。我用一组非常简洁的模块模拟了这个问题:

c、 派克

b、 派克

a、 派克

如果我运行b.py,我会得到以下结果:

creating connection
created connection

Process finished with exit code 0
如果我运行a.py,我会得到:

creating connection
它就挂在那里

我正在Debian7上运行Python 2.7.3
编辑:需要明确的是,当从b导入c时会发生阻塞,然后当c在线程内创建连接时会从a导入b。如果我不在c中使用线程,a就可以正常工作。

因此,我没有阅读文档中的这一小条消息,这就是问题的原因:

#coding=utf-8
from b import pool
creating connection
created connection

Process finished with exit code 0
creating connection