私はスレッドをself.outputに追加し、self.doneがTrue(または最大実行時間に達する)までループを実行します。Pythonスレッドとwhileループwhile
whileループを使用する以外にもこれを行うより効率的な方法は、実行されているかどうかを常にチェックします。 whileループは、CPUを放棄するwhileループの各反復の後に簡単な一時停止を作成するために
time.clock()
while True:
if len(self.output):
yield self.output.pop(0)
elif self.done or 15 < time.clock():
if 15 < time.clock():
yield "Maximum Execution Time Exceeded %s seconds" % time.clock()
break
OoOooo、今話しています。 :D – Ian
Queue.get()上でスレッドをブロックするように指示する方法はありますか?プロデューサがスレッドに何かを入れてタイムアウトしないようにして、正常に終了するようにしますか? – millimoose
@Sii:スレッドデーモニックを作成するときにデーモンにマークすることができます。これは、プログラムが終了するとスレッドが終了することを意味します。 –