2016-05-06 14 views
0

いくつかのLEDをオンにし、一時停止(time.sleep)してから、Raspberry Piを介してLEDを消すPython関数があります。それは実際にはさまざまなパターンのLEDの束であり、数百行のコードです。この関数はすべてを無限ループで処理します。もともと、私はスレッドで関数を呼び出しました。これは、他のコードも連続的に実行されているためです。Pythonでのスレッド化(スレッドの終了)

ここで、この機能を終了する必要があります。これは、10秒または100秒後に必要になる可能性があります。それぞれの時間はちょうど依存します。サイトを調べてスレッドを調べると、スレッドを終了するのは賢明ではないし、関数内に非常に多くのコード行があるため、実際にフラグを使用することはできません。

スレッドを使用する代わりに使用できますか?

答えて

2

スレッド間の明示的なデータ共有が必要ない場合は、threadingモジュールと非常に似ていますが、プロセスを使用して安全に終了できます。multiprocessingを使用できます。

+0

ありがとうございます、うまくいくようです。無事に終了することで、ちょうどそうのように ")(.terminate" を使用することにより、あなたは意味ですか: P = multiprocessing.Process(ターゲット=テスト) p.start() p.terminate() p.joinを() – user1624184

+0

@ user1624184:はい。 – ShadowRanger

関連する問題