原文鏈接:https://www.cnblogs.com/heiao10duan/p/9373237.html
原因:
使用了多線程,多線程共享了同一個數據庫連接,但每個execute前沒有加上互斥鎖
方法:
方法一:每個execute前加上互斥鎖
lock.acquire()cursor.execute(command,data) lock.release()
方法二:
每個線程擁有自己的數據庫連接,即在線程調用函數中加上數據庫連接代碼
方法三:
所有線程共用一個連接池,需要考慮線程總數和連接池連接數上限的問題
前兩個方法比較容易,后面一個連接池沒寫過,以后試試,目前用方法一解決。