0

別のスレッドにする必要があるコードがいくつかありますが、このコードは完全に別のクラスです。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 に送信して使用するのにまだ問題があります。

4

0 に答える 0