原因:
使用了多線程,多線程共享了同一個數據庫連接,但每個execute前沒有加上互斥鎖
方法:
方法一:每個execute前加上互斥鎖
lock.acquire()
cursor.execute(command,data)
lock.release()
方法二:
每個線程擁有自己的數據庫連接,即在線程調用函數中加上數據庫連接代碼
方法三:
所有線程共用一個連接池,需要考慮線程總數和連接池連接數上限的問題
原因:
使用了多線程,多線程共享了同一個數據庫連接,但每個execute前沒有加上互斥鎖
方法:
方法一:每個execute前加上互斥鎖
lock.acquire()
cursor.execute(command,data)
lock.release()
方法二:
每個線程擁有自己的數據庫連接,即在線程調用函數中加上數據庫連接代碼
方法三:
所有線程共用一個連接池,需要考慮線程總數和連接池連接數上限的問題
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。