Python子进程:调用实例方法

2024-10-01 00:36:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是python2.7。我想创建一个对象的实例,并在单独的进程中调用其中的方法。像这样:

import subprocesss
class A
   def doAwork(self, text):
      print text

class B
   def doBWork
      aInst = A()
      subprocess(A.dowork("called from doBwork"))

可以这样做吗?或者,我需要把python作为子进程调用吗?在

编辑: 我不能用线来做这个。实际上,aInst中调用的方法加载一个非线程安全的dll。在

谢谢


Tags: 对象实例方法textimportself进程def
3条回答

subprocess用于生成进程(在windows上为EXE),而不是函数。在这种情况下,您可以使用线程:

import thread

class A:
   def doAwork(self, text):
      print text

class B:
   def doBwork(self):
      aInst = A()
      thread.start_new_thread(aInst.doAwork, ("called from doBwork",))

B().doBwork()

多处理http://docs.python.org/2/library/multiprocessing.html 过程类将为您提供所需的一切

您必须使用multiprocessing模块而不是subprocess

从上面的文档链接复制的简单示例:

from multiprocessing import Process

def f(name):
    print 'hello', name

if __name__ == '__main__':
    p = Process(target=f, args=('bob',))
    p.start()
    p.join()

在你的例子中,它应该是这样的:

^{pr2}$

相关问题 更多 >