我编写了一个函数 collect_data ,使用4个线程从4个网站收集数据(例如,网站 a 到 d )并更新mysql表中的数据,同时发生; 在表中,有4个字段,每个字段存储来自一个网站的数据 更新表时,4个线程没有使用锁。 4个线程每10秒收集数据并在mysql中更新数据。
def collect_data(site_list = ['a', 'b', 'c', 'd']):
for site in site_list:
InfoCollectingThread(site).start()
不幸的是,经过一段时间的运行(比如3个小时),mysql中没有新的记录。 似乎有些线程已经过时,因为相应的字段没有更新。
我的问题是我的设计过程和解决方案存在哪些问题? 圣诞快乐。
答案 0 :(得分:2)
我们有太多可能的原因和太少的信息无法做出明智的猜测。我可以为您提供的一些建议如何解决这个问题:
try
- finally
部分),同时使用调试输出。这样,如果一个线程死了,你就会知道。