是否可以用fork复制当前的交互式python进程/解释器?

时间:2019-04-05 23:36:07

标签: python process ipython fork pythoninterpreter

对不起,因为不知道该问题的正确术语。

是否可以“复制”当前运行的python解释器,然后以交互方式连接和使用它?

我看到一个叫做os.fork()的东西,看起来很有希望。

基本上,我在想像这样的事情:

我使用在Mac终端上运行的ipython。在ipython会话中,我定义了一些变量,并且在内存中有对象。然后,我以某种方式“分叉”该过程以创建重复项(子过程?)。我将控制权“切换”到重复项,交互地处理变量,也许做一些使进程挂起的事情(如尝试分配巨型数组)或某些类似的破坏性行为。然后,只要我愿意,我都可以终止该子进程,然后返回到我的原始解释器。更好的方法是在当前正在与之交互的进程之间来回切换。

当我使用ipython解释器时,我经常使用多处理模块。我知道这是以某种方式使当前的解释器流程分叉。即当您调用multiprocessing.Pool()时,您将获得一个子进程池,每个子进程都可以查看主进程中定义并位于内存中的所有对象。子进程可以修改这些对象,但是据我了解,子进程可以自动为它们创建一个副本,并且它们可以修改副本。因此,主流程的对象保持不变。

0 个答案:

没有答案