別のスレッドにする必要があるコードがいくつかありますが、このコードは完全に別のクラスです。multiprocess.Queue キューを使用してデータを共有しています。基本的に、親の基本クラス (プログラム ドライバーも) が他のクラスのインスタンスを作成し、そのインスタンスをキューに入れ、そのキューを新しいスレッド化されたクラスに送信する必要があります。スレッド化されたクラスが実行され、最終的に値が得られたら、渡されたキュー内のインスタンスから関数を直接呼び出す必要があります。
代わりに、スレッドが終了し、設定した finally ブロックを呼び出します。Pythonでこれを行うにはどうすればよいですか?
from multiprocessing import queue
import thread
class a():
def main(self):
self.classB = b()
self.classC = C()
self.queue = Queue()
self.queue.put_nowait(self.classC)
thread.start_new_thread(self.classB.run, (self.queue))
#do stuff
class b():
def run(self, q):
#do stuff in try clause
self.listen(q)
def listen(self, q):
c = q.get()
c.someClassCMethod
編集:わかりましたので、代わりに Queue.Queue() を使用しています。言及されたスレッド化キューが見つかりませんでした.... classC のインスタンスを classB に送信して使用するのにまだ問題があります。