6

アクションが発生したときに実行されるスレッドがあります。プログラムのロジックを考慮すると、スレッドの別のインスタンスがまだ実行されている間は、スレッドを開始することはできません。しかし、もう一度呼び出すと、「RuntimeError: thread already started」というエラーが表示されます。Thread.is_alive() 関数を使用して実際に生きているかどうかを確認するチェックを追加しましたが、実際には死んでいます。

私は何を間違っていますか?

必要に応じて詳細を提供できます。

4

3 に答える 3

11

スレッドを再開することはできません。スレッドを再開するには、スレッドを再作成する必要があります。

于 2010-05-12T21:01:10.703 に答える
7

Pythonドキュメント から:start() スレッドのアクティビティを開始します。これは、スレッド オブジェクトごとに最大 1 回呼び出す必要があります。オブジェクトのrun()メソッドが別の制御スレッドで呼び出されるように調整します。

threading.Thread からクラスを派生Thread.__init__(self)させると、run メソッドの最後に a を追加でき、start を再度呼び出すことができ、完了時に自動的に再初期化されます。

于 2012-09-08T11:32:10.093 に答える
2

設定を試すことができます

thread._Thread__started = False

公式に文書化されていないため、自己責任で使用してください。:)

于 2010-05-12T21:49:07.860 に答える