为什么这些Python服务器进程会累积?

时间:2015-01-13 23:36:52

标签: python multiprocessing python-multiprocessing

忽略实际的实用程序,我有以下类:

from multiprocessing import Manager
import threading


class MgrStaticTarget(object):

    def __init__(self):
        self._mgr = Manager()
        self._thd = threading.Thread(target=self.async_targ)

    @staticmethod
    def async_targ():
        pass

class MgrInstanceTarget(object):

    def __init__(self):
        self._mgr = Manager()
        self._thd = threading.Thread(target=self.async_targ)

    def async_targ(self):
        pass

我观察的行为我不明白。在使用Python shell以下列方式重复实例化MgrInstanceTarget时:

i = MgrInstanceTarget()
i = MgrInstanceTarget()
i = MgrInstanceTarget()
i = MgrInstanceTarget()

multiprocessing.Manager服务器进程(或者至少是我认为它们来自的进程)正在累积。

但是,如果我以相同的方式实例化MgrStaticTarget,则服务器进程不会累积。唯一存在的进程是最新的Manager服务器进程和python shell。这里发生了什么?

0 个答案:

没有答案