0
一个全新的过程我想调用子流程蟒蛇功能,而无需创建当前进程的副本。如何产卵在python
我有一个方法A.run()
它应该多次呼叫B.run()
。 A.run()
消耗大量的内存,所以我不希望使用ProcessPoolExecutor
,因为它复制了整个内存AFAIK。 我也不想用subprocess.Popen
,因为它有几个缺点对我说:
- 只传递一个字符串作为参数
- 不能采取例外的优势
- 我必须知道的
B.py
位置准确,而不是依托PYTHONPATH
我也不想生成线程,因为B.run()
崩溃容易,我不希望它影响父进程。
有没有一种方式我忽略了它的优点是产生单独的进程,没有额外的内存,但有调用python方法的好处?
编辑1: 解答一些问题:
- 如果我理解正确的这个,我不需要第一蟒蛇进程的背景下。
- 因为我称之为具有静态变量一个C++库,他们需要被破坏,我不能再利用过程。
您是否想让第一个python进程的上下文在新的python进程中可用? –
寻找你说的唯一选择是在分离的线程上运行B,并在手动结束时进行处理 – Netwave
你可以在'A.run'的clostly位之前创建'ProcessPoolExecutor'吗?也许创建之前'A.run'甚至开始,并在将它作为一个参数? – Blckknght