2012-07-03 99 views
2

我正在创建一个小型应用程序,它将执行4种不同的耗时任务,例如第一个输出是第二个输入等等。 在每个任务级别,输出都附加到列表中,下一个任务弹出,操作并将其输出附加到其输出列表中,等等...... 我认为我会完成任务的方式是让多个线程在这4项任务中的每一项上。python:根据需求产生线程

回答这个问题,有什么办法可以让我的应用程序在每个任务级别产生线程,这取决于其输入队列中的任务数量?

假设第二个任务的输入列表在开始时是空的,所以数字线程为零,但是如果有一个任务在那里,则会产生单个线程,两个等等......并且当然有一个上限线程的数量是10,所以如果输入列表的长度高达100,运行的线程数仍然保持在10.

请建议pythonic方式去实现这一点。

回答

1

您已成功发明了Thread Pool。有内置的支持,并且有很多librariesexamples会为您提供这个,所以请使用一个或从他们的代码学习。

from multiprocessing.pool import ThreadPool 
+0

我会建议使用[多处理模块(http://docs.python.org/library/multiprocessing.html)'从多处理进口Pool'为主线可能不会做你想做的原因是什么Global Interpreter锁 –