在THINGS
變量中存儲了101件事情。 該代碼聲明瞭101個線程,並立即全部同時立即執行它們。如何限制線程數
我不知道,如果我們能夠有效的線程數限制爲僅12
起初只有12個線程應該選擇自己的12件實事來處理。其餘的線程應該等待前12名完成他們的工作。當前12個線程全部完成時,接下來的12個線程將接下來處理的12個線程。還有一個。
會有可能嗎?
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線程運行在一次) – Morishiri
看起來像一個池.. https://docs.python.org/2/library/multiprocessing.html#using-a-pool-of-workers – Olegp
我不知道我們是否可以將活動線程的數量限制在12'。製作12個線程。不要再做了。不要讓他們中的任何一個終止。 –