我有一个python脚本,我想使用两个进程或线程运行。我被限制为两个,因为我连接到只有两个许可证的api /链接。我通过导入他们的模块并实例化他们的类来获取许可证。以下是我的问题:
我需要写一个sqlitedb3。我试图共享数据库连接,将其传递给“worker”并让它创建自己的游标,但我会陷入“数据库锁定”消息,似乎无论我多久都在重试,锁定并不清楚。我的程序将花费大约5分钟从模型加载数据,然后大约一分钟处理数据并插入数据库。然后在我移动到下一个模型之前,它执行commit()。我想我只能创建两个独立的数据库
写入数据库后,我使用matplotlib创建一些图和图像,然后将它们保存到具有唯一名称的文件中。我一直得到“QApplication不是在main()线程中创建的”和“Xlib:意外的异步回复”。我认为从线程切换到多进程可能有助于此
我想确保一次只运行两个线程或进程。实现这一目标的最佳方法是什么?通过线程,我正在做以下事情:
c1 = load_lib_get_license()
c2 = load_lib_get_license()
prc_list = list of models to process
while (len(prc_list) > 0):
if not t1.is_alive():
t1 = threading.Process(target=worker,args=(c1,db_connection,prc_list.pop(0))
t1.start()
if not t2.is_alive():
t2 = threading.Process(target=worker,args=(c2,db_connection,prc_list.pop(0))
t2.start()
while (t1.is_alive() and t2.is_alive():
sleep(1)