私はソケットを介してデータを送信するスレッドを制御するためにスレッドモジュールを使用していますが、使用するスレッドにデータを渡す適切なソリューションが見つかりません。私はOverriding python threading.Thread.run()のようなものを試しましたが、うまく動作していないようです。誰かが何か提案があれば、私は何かを試してうれしいです:)スレッドに変数を渡すPython
ありがとう!
私はソケットを介してデータを送信するスレッドを制御するためにスレッドモジュールを使用していますが、使用するスレッドにデータを渡す適切なソリューションが見つかりません。私はOverriding python threading.Thread.run()のようなものを試しましたが、うまく動作していないようです。誰かが何か提案があれば、私は何かを試してうれしいです:)スレッドに変数を渡すPython
ありがとう!
あなたはこれを後ろ向きに考えています。ソケットを介してデータを送信しているスレッドであるという事実を忘れてしまいます。データはスレッドに到達する必要はなく、ソケット上のデータを送信するロジックに到達する必要があります。
たとえば、ソケットを介して送信する必要があるものを保持するキューを持つことができます。ソケット書込みコードは、キューからメッセージを取り出して、それらをソケットに送ります。他のコードはこのキューにメッセージを入れます。ソケットにメッセージを送信する必要のあるコードは、送信を行うスレッドがあることを知っていたり、気にしてはいけません。
これにメッセージキューを使用します。 Pythonにはスレッド間でデータを渡すモジュールQueue
がありますが、0MQ http://www.zeromq.orgのようなサードパーティのライブラリを使用すると、スレッドを別々のプロセスに分割することができ、同じように動作します。
マルチプロセッシングはスレッド化よりも簡単ですが、スレッド化を使用する必要がある場合はできるだけデータをロックしたり共有したりしないでください。代わりに、Queue
のような事前作成されたモジュールを使用して、微妙なバグが発生する可能性のある方法を制限してください。
さらに良い:)ありがとう – Trent