Python线程和队列

时间:2014-12-23 17:25:20

标签: python multithreading

我真的需要回答一般问题。我有一个脚本现在使用线程来访问1000个设备并从中获取信息。我现在要求每天以相同的顺序获取该信息..

所以我需要从列表中获取信息,并且每天以相同的顺序访问这些设备。我还必须以相同的顺序获取此信息。

我可以禁用线程来执行此操作,但随后脚本需要数小时才能运行。我可以使用什么类型的Queue来保持线程,但访问这些设备并每次都以相同的顺序写入?这可能吗?

1 个答案:

答案 0 :(得分:-1)

您确定需要以相同的顺序访问设备吗?在这种情况下,您无法按定义使用任何并发。

否则,map模块的concurrent.futures方法将完美地工作:它在N个线程或进程的池中同时执行一系列任务,并以与它们相同的顺序返回它们的结果提供。

您甚至可以尝试ProcessPoolExecutor代替ThreadPoolExecutor(他们可以互换),看看它是否能进一步提升效果。

有一个例子可以帮助你:ProcessPoolExecutor Example(素数)。

backport futures可用于旧版本的Python。