ฉันมีโปรแกรม Python ที่ใช้โมดูล "เธรด" ทุกๆวินาทีโปรแกรมของฉันจะเริ่มเธรดใหม่เพื่อดึงข้อมูลบางส่วนจากเว็บและเก็บข้อมูลนี้ไว้ในฮาร์ดไดรฟ์ ฉันต้องการใช้ sqlite3 เพื่อเก็บผลลัพธ์เหล่านี้ แต่ไม่สามารถใช้งานได้ ปัญหาน่าจะเกี่ยวกับบรรทัดต่อไปนี้:
conn = sqlite3.connect("mydatabase.db")
- ถ้าฉันใส่รหัสบรรทัดนี้ในแต่ละเธรดฉันจะได้รับ OperationalError ที่บอกฉันว่าไฟล์ฐานข้อมูลถูกล็อก ฉันเดาว่านี่หมายความว่าเธรดอื่นเปิด mydatabase.db ผ่านการเชื่อมต่อ sqlite3 และได้ล็อกไว้
- ถ้าฉันใส่โค้ดบรรทัดนี้ในโปรแกรมหลักและส่งต่ออ็อบเจกต์การเชื่อมต่อ (conn) ไปยังแต่ละเธรดฉันจะได้รับ ProgrammingError โดยบอกว่าอ็อบเจ็กต์ SQLite ที่สร้างในเธรดสามารถใช้ได้ในเธรดเดียวกันเท่านั้น
ก่อนหน้านี้ฉันเก็บผลการค้นหาทั้งหมดไว้ในไฟล์ CSV และไม่มีปัญหาการล็อกไฟล์เหล่านี้ หวังว่าจะเป็นไปได้กับ sqlite ความคิดใด ๆ ?