14
Python sqlite3和并发
我有一个使用“线程”模块的Python程序。每秒一次,我的程序启动一个新线程,该线程从Web上获取一些数据,并将这些数据存储到我的硬盘中。我想使用sqlite3来存储这些结果,但是我无法使其正常工作。问题似乎与以下几行有关: conn = sqlite3.connect("mydatabase.db") 如果将这行代码放入每个线程中,则会收到OperationalError通知我数据库文件已锁定。我想这意味着另一个线程通过sqlite3连接打开了mydatabase.db并已将其锁定。 如果将这行代码放入主程序中,并将连接对象(conn)传递给每个线程,则会收到一个ProgrammingError,表示在线程中创建的SQLite对象只能在同一线程中使用。 以前,我将所有结果存储在CSV文件中,并且没有任何这些文件锁定问题。希望使用sqlite可以实现。有任何想法吗?