python mysqldb多线程问题

panzifei 2011-09-10 02:21:58
是不是只能用每个线程单独创建自己的连接的方式?而不能多个线程共享同时使用一个连接?
这个问题又折腾了几天了,无功而返
...全文
489 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
panzifei 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 huangyong19870618 的回复:]
可以开启多个连接的,测试的方法是两个线程共用一个连接当事务比较多的时候数据库会操作异常,当开启2个连接用2个线程操作的时候不会出现数据库操作异常!
[/Quote]
谢谢,用得着时再测试一下看看。
我现在改用sqlite做我的程序的数据库了,这个是单机版的,也只能单线程操作。暂时不关注这个问题了。
多谢各位
bean11222 2011-09-17
  • 打赏
  • 举报
回复
可以开启多个连接的,测试的方法是两个线程共用一个连接当事务比较多的时候数据库会操作异常,当开启2个连接用2个线程操作的时候不会出现数据库操作异常!
宁无竹 2011-09-15
  • 打赏
  • 举报
回复
你想错了,,如果你多线程用一个链接的话,一个sql在查询,又过来一个查询的话,马上会报,lost connect during query

建议搞个数据库连接池吧,
panzifei 2011-09-10
  • 打赏
  • 举报
回复
mysqldb、pymysql都一个样,放弃了暂时不用这两个了。
SQLAlchemy、DBUtils这两个先试试第一个看看效果如何
iambic 2011-09-10
  • 打赏
  • 举报
回复
这个threadsafety只是一种声明吧。并不是控制。
MySQLdb只支持1,所以threadsafety的值就是1。不是给你改的。

需要多程共享一个连接,你可以做一个专门的线程代理所有的连接使用。这个并不复杂。
panzifei 2011-09-10
  • 打赏
  • 举报
回复
但是pep 249上又这么说:
threadsafety

Integer constant stating the level of thread safety the
interface supports. Possible values are:

0 Threads may not share the module.
1 Threads may share the module, but not connections.
2 Threads may share the module and connections.
3 Threads may share the module, connections and
cursors.

google了几天了都没找到个使用3的文章帖子

37,744

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧