2016-08-22 4 views
0

私は、ハングしている複数のスレッドを使用するAPIからデータを抽出するプロセスを持っています。ハングする子スレッドを処理するには?

  • メインスレッドは子スレッドを起動し、N回のAPI呼び出しが行われ、すべての子スレッドが終了するまで待機します。
  • 1子スレッドは、APIへの呼び出しが必要な呼び出しをキューに取り込みます。
  • 8つの子スレッドがAPI呼び出しを実行します。

API呼び出しのうちの1つがハングアップすると(残念ながらタイムアウトを制御できません)、子スレッドは終了せず、メインスレッドは子スレッドが終了するまで永遠に続行します。

子スレッドを強制的にメインスレッドから終了する方法はありますか?あるいは、この問題を発生させないこのタイプのデータ収集プロセスを行うための試行錯誤した方法がありますか?

答えて

0

スレッドを作成するときに、daemon属性を明示的に設定してメインスレッドが終了したときに自動的に終了するかどうかを、start()メソッドを呼び出す前に制御できます。オンラインドキュメントのThread Objectsセクションを参照してください。

同様の質問へmy answerでかなり詳細な説明もあります:
              What does sys.exit really do with multiple threads?

関連する問題