2011-07-20 13 views
1

は、私はどうなるスレッドのリストが完了するのを待つ方法は?シングルスレッドの場合(パイソン)

thread.join(60) 
threadEvent.set() 

どのように私はそれがスレッドに()を完了またはタイムアウトするまで待機してからセットを発行するには、リスト内のすべてのスレッドを待つことができます。イベント()?各スレッドには、スレッドを停止するために使用される対応するthreading.Event()があります。重要なことは、タイムアウトに達すると、スレッドごとにイベントを設定する必要があるということです。

+0

スレッドとその対応するイベントのリストを保持しますか? –

+0

ようこそhttp://stackoverflow.com/questions/887346/synchronising-multiple-threads-in-python? – kennytm

+0

基本的に、スレッドが終了したらすぐに参加しないかどうかは関係ありません。スレッドの1つを待つことができ、残りのタイムアウト時間のタイムアウトを待つことができます。 –

答えて

3
import time 
endTime = time.time() + 60 
for t in threads: 
    t.join(endTime - time.time()) 
    t.event.set() 
+0

イベントのループになっている可能性はありますか?各スレッドには独自のイベントがあるので –

+0

@Douglas Leederおっと、それを見落とした。ループ内のイベント設定を移動しました。 – phihag

+0

負のタイムアウトでjoin()が何をするのか分かりません。多分それは悪くなるだろうか? –

関連する問題