Python 2.7 没有挂起父进程的子进程

Python 2.7 没有挂起父进程的子进程,python-2.7,subprocess,multiprocessing,maya,Python 2.7,Subprocess,Multiprocessing,Maya,我有python函数,我正在maya中运行该过程。我希望将该函数作为另一个进程运行,以便maya仍能响应,并且我可以继续使用maya from multiprocessing import Process def test_func(node): # I have some crazy functions in here pass def run_test(): p = Process(target=test_func, args=(items,)) p.daemon

我有python函数,我正在maya中运行该过程。我希望将该函数作为另一个进程运行,以便maya仍能响应,并且我可以继续使用maya

from multiprocessing import Process
def test_func(node):
   # I have some crazy functions in here
   pass

def run_test():
   p = Process(target=test_func, args=(items,))
   p.daemon = True
   p.start()
这只是一个测试函数。我只想展示我想做的事。知道在不干扰maya的情况下启动进程的智能方式是什么吗


谢谢,

< p>我没有做任何Python多线程,只有C++,但是除非进程隐式使用多线程,否则它不会同时运行。查找作为标准库一部分的线程模块的文档。

这可能不是每个人都能看到的,因为你很快就会对一个关键问题茫然不知所措。。。但您正试图在Autodesk Maya会话中使用
多处理
。据我所知,这是行不通的


出于高级原因,我相信其他人可以提供更多详细信息,
multiprocessing.Process
希望分叉Maya进程并继续运行。这意味着它需要复制整个maya图像(如果在场景中执行大量操作,则可能会有超过1GB的内存),然后继续运行。通过Maya API执行的任何操作都将处于完全不同的过程中,处于不同的场景图中。此外,您很可能会死锁,因为主进程中的所有各种同步原语状态现在都会按原样复制到新空间

最好在Maya中使用线程解决方案,或者使用外部进程。即使使用线程,您与Maya API交互的能力也有限,而且它们提供了UTIL来执行对主线程的调用,甚至等待调用结果


同样,任何其他对流程分叉和死锁有更低级知识的人,请随意扩展这个答案

multiprocessing.Process
在Python中创建一个单独的操作系统进程。它“同时”运行。如果调用
run_test()
“Maya中的线程解决方案”,会发生什么情况?我不清楚这一点:(@Achayan-Ya我只是想使用线程。线程池应该可以工作,子进程调用也应该工作(除了极罕见的情况,即在fork期间也会导致死锁)