【发布时间】:2014-10-16 16:54:49
【问题描述】:
我对多线程非常陌生。我的 python 脚本中有 2 个函数。一个函数enqueue_tasks 遍历一个大的小项目列表,并对每个项目执行一项任务,该任务涉及将项目附加到列表中(我们称之为master_list)。这个我已经使用futures多线程了。
executor = concurrent.futures.ThreadPoolExecutor(15) # Arbitrarily 15
futures = [executor.submit(enqueue_tasks, group) for group in grouper(key_list, 50)]
concurrent.futures.wait(futures)
我还有另一个函数process_master 遍历上面的master_list 并检查列表中每个项目的状态,然后执行一些操作。
我可以使用上面相同的方法为process_master 使用多线程吗?此外,我可以让它与enqueue_tasks 同时运行吗?这意味着什么? process_master 依赖于来自enqueue_tasks 的列表,那么同时运行它们会不会有问题?有没有办法可以稍微延迟第二个功能? (也许使用time.sleep)?
【问题讨论】:
标签: python multithreading multiprocessing