基本的には、400 スレッドを一定期間、たとえば 5 分間実行したいと考えています。問題は、トレッド全体にタイマーを配置する方法がわからないことです(スレッド化にはあまり慣れていません)。私がこれまでに見つけた唯一の方法は、JobManager から時間を計り、停止イベントを Job に渡すことです (以下を参照)。ただし、これは、プロセス全体のタイミングを計ってからすべてのスレッドを終了するのではなく、トレッド間でスリープします。
Python 2.7 を使用してこれを行う方法はありますか?
import threading, time
# Job
def Job(i, stop_event):
print
print 'Start CountJob nr:', i
print
while(not stop_event.is_set()):
pass
print 'Job', i, 'exiting'
# run the Jobs
for i in range(0,400):
p_stop = threading.Event()
p = threading.Thread(target=Job, args=(i, p_stop))
p.daemon = True
p.start()
time.sleep(10)
p_stop.set()