多线程执行sql报错处理
原文: https://www.cnblogs.com/heiao10duan/p/9373237.html 参考: https://www.jianshu.com/p/60c8e0e440ea 原因: 使用了多线程,多线程共享了同一个数据库连接,但每个execute前没有加上互斥锁 方法: 方法一:每个execute前加上互斥锁 lock.acquire() cursor.execute(command,data) lock.release() 1 2 3 方法二: 每个线程拥有自己的数据库连接,即在线程调用函数中加上数据库连接代码 方法三: 所有线程共用一个连接池,需要考虑线程总数和连接池连接数上限的问题未加互斥锁之前: 加了互斥锁之后: