2016-05-05 16 views
1

私は、メインスレッドが特定のクラスのオブジェクト、たとえばxを作成するPythonアプリケーションに取り組んでいます。メインスレッドが終了した後にデーモンスレッドを生かし続けるには?

次に、このオブジェクトのメソッドの1つで実行を開始する1つのスレッドを開始します。x。このメソッドはループがwhile True:なので、無限ループです。

次に同じオブジェクトの別のメソッドで実行を開始する別のスレッドを開始しますx。このメソッドには、無限ループのwhile True:もあります。

t1.setDaemon(True)を呼び出すことによって両方のスレッドをデーモンとして作成しましたが、メインスレッドが終了すると両方のスレッドは実行を停止するようです。

親スレッドが終了した後、子プロセスをどのように維持しますか? または、私はcronジョブまたはプロセスフォークを使用するように設計を変更する必要がありますか?

答えて

1

ドキュメントは

スレッドは「デーモンスレッド」としてフラグを設定することが可能と言います。このフラグの意味は、デーモンスレッドだけが残っているとPythonプログラム全体が終了することです。初期値は作成スレッドから継承されます。フラグはdaemonプロパティで設定できます。

プログラムを実行し続けるには、少なくとも1つの非デーモンスレッドが必要です。

関連する問題