pymysql 连接线程安全吗?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)

最新更新