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