原文链接:https://www.cnblogs.com/heiao10duan/p/9373237.html
原因:

使用了多线程,多线程共享了同一个数据库连接,但每个execute前没有加上互斥锁

方法:

方法一:每个execute前加上互斥锁

    lock.acquire()
    cursor.execute(command,data)     
    lock.release()

方法二:

每个线程拥有自己的数据库连接,即在线程调用函数中加上数据库连接代码

方法三:

   所有线程共用一个连接池,需要考虑线程总数和连接池连接数上限的问题     

前两个方法比较容易,后面一个连接池没写过,以后试试,目前用方法一解决。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐