を待って忙しいずにほとんどの時間を、私は次のスレッドを持っている、キューqが空である場合)(queue.getでブロッキング:Pythonは例外や
def run(self):
while True:
if not self.exit_flag:
items = self.q.get()
q.work_it()
else:
return 0
終了フラグが設定されている場合、それはありません私はそれにタイムアウトを置けばそれはおそらく現在
items = self.q.get()
でブロックしているため、すぐに終了する可能性が高い
items = self.q.get(True, 0.1)
私はしばしば空の例外を発生させます。なぜなら、キューは私が望むよりも多くのリソースを使って空でないほうが多いからです。
def run(self):
while True:
if not self.exit_flag:
if not self.q.empty():
items = self.q.get()
q.work_it()
time.sleep(0.1)
else:
return 0
は、その後、私は待っている代わりに醜いようだQueue.getのブロッキング機能を()を使用して、忙しい行うように私はビジーウェイトを行う場合。この問題の洗練された解決策がここにないようですね。忙しい待っているソリューションを使っているのですか?
これは最適なソリューションのようです。どうもありがとう。 – user2247969