我有一些代码需要在一个单独的线程中,这个代码完全是一个不同的类。我正在使用 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 并使用它。