THINGS
変数には101個のものが格納されています。 コードは101個のスレッドを宣言し、すべて同時に同時に瞬時に実行します。スレッドの数を制限する方法
私達はちょうど12
最初のみ12スレッドの処理にその12個のものを選ぶ必要があるためにアクティブなスレッドの数を制限することができる場合、私は疑問に思います。残りのスレッドは、最初の12人が作業を終了するのを待つ必要があります。最初の12個のスレッドがすべて完了すると、次の12個のスレッドが処理する次の12個のスレッドを取得します。それで1つ。
可能でしょうか?
import Queue
import threading, time
class MyThread(threading.Thread):
def __init__(self, theQueue=None):
threading.Thread.__init__(self)
self.theQueue=theQueue
def run(self):
thing=self.theQueue.get()
self.process(thing)
self.theQueue.task_done()
def process(self, thing):
time.sleep(1)
print 'processing %s'%thing.name
queue=Queue.Queue()
THINGS = ['Thing%02d'%i for i in range(101)]
THREADS=[]
for thing in THINGS:
thread=MyThread(theQueue=queue)
thread.name = thing
THREADS.append(thread)
thread.start()
for thread in THREADS:
queue.put(thread)
の可能性のある重複[一度に実行中のスレッドの最大数を制限するための正しい方法を?](http://stackoverflow.com/questions/19369724/the-right-way-to-limit-maximum-number -of-threads-running-at-once) – Morishiri
プールのように見えます。https://docs.python.org/2/library/multiprocessing.html#using-a-pool-of-workers – Olegp
私たちがアクティブなスレッドの数をちょうど12分に制限することができます。 12のスレッドを作成します。もう作ってはいけない。それらのいずれかを終了させないでください。 –