A〜Gの文字を10個づつ表示するという処理が、7スレッドで並行して実行されます。
スレッド数の上限を例えば4として、A〜Dの並行処理が終わってからE〜Gが処理されるようにするにはどのように記述すればよいのでしょうか?
Queueを使って、スレッドプールを使えば良いらしいので、書いてみました。
from __future__ import division, print_function, unicode_literals __metaclass__ = type from Queue import Queue from threading import Thread def main(): q = Queue() def worker(q=q): while True: c = q.get() for i in xrange(10): print(c, end="") q.task_done() for i in range(4): t = Thread(target=worker) t.setDaemon(True) t.start() for c in "ABCDEFG": q.put(c) q.join() if "__main__" == __name__: main()