我有程序,从文件中获取存储的值并在线检查。最大并行度为 10 个线程,之后系统崩溃。以下是我目前正在做的事情:threads_value = list()i = 0while i < len(ValueList): for value in ValueList[i:i + 1]: value_read = server_connect_read(channel, value) thread = threading.Thread(target=update_value, args=(value_read,)) thread.setName('Currently running thread' + int(value)) print(threading.current_thread().getName()) threads_value.append(thread) thread.start() i = i + 1for thread in thread_value: thread.join()def update_value(value_read): if value_read.server_connect() is False: return False print("updating values") update = server_read.update_value(old_values.xlsx) if value_read.server_disconnet() is False: return False在这里,根据文件中的值,线程一次全部启动。因此,如果我有超过20个值,则在前10个之后开始的线程无法连接到服务器,并且线程将显示断开连接。因此,并非所有值都会更新。我仍在学习并经历了一些建议,即在尝试线程时限制worker的数量,我看到线程没有以顺序方式启动。有没有办法用序列起始线程创建线程拉动。
1 回答
ABOUTYOU
TA贡献1812条经验 获得超5个赞
from multiprocessing.dummy import Pool
def update_value(value):
value_read = server_connect_read(channel, value)
if value_read.server_connect() is False:
return False
print("updating values")
update = server_read.update_value(old_values.xlsx)
if value_read.server_disconnet() is False:
return False
Pool(4).map(update_value, ValueList)
添加回答
举报
0/150
提交
取消