Jai*_*ero 5 python mysql multithreading thread-safety pymysql
我有一个队列数据结构,其中多个线程消耗项目,每个线程将使用 PyMySQL 写入数据库,线程之间不需要其他同步。
在所有线程中使用来自同一个 pymysql 连接的同一个游标是否可以自由竞争?
来自同一连接的每个线程使用不同的游标是否可以自由竞争?
(当然在多线程中使用多个连接是可以的,因为在这种情况下没有共享资源,我对这种情况没有兴趣)
感谢 El Ruso,为我们指明了方向
在了解 DBAPI2 有一个规范指示如何根据实现来回答这个问题后,我在 pymysql 源代码中找到了答案。对于 PyMySQL,这意味着它对于连接和游标都不是线程安全的。
https://github.com/PyMySQL/PyMySQL/blob/master/pymysql/ init .py#L40行
PyMySQL 是线程安全的 = 1 意味着:线程可以共享模块,但不能共享连接。
(阅读 PEP-0249 规范http://legacy.python.org/dev/peps/pep-0249/#threadsafety)
| 归档时间: |
|
| 查看次数: |
4836 次 |
| 最近记录: |