sqlite3.ProgrammingError: SQLite objects created in a thread can only be used in that same thread. The object was created in thread id 3069282688 and this is thread id 3004867648.
就是线程冲突
从错误信息来分析,问题是sqlite本身应对多个线程并发访问过程中的冲突问题,由一个线程创建并访问的sqlite的数据库,无法允许另外一个线程进行访问。这里的解决办法可能有2个:
- 通过队列规避多线程的访问
- 通过设置或者多个访问管道,规避线程之间的冲突问题
解决方法:把当前线程里的connect语句改为这种形式:conn=sqlite3.connect(“stocks.db”,check_same_thread = False)
即加上:check_same_thread = False