sre*_*aag 5 python linux multiprocessing
我有一个 init 方法,它初始化各种原始和复杂的数据类型和对象。在 multiprocessing.Process 生成的每个进程中,我从 init() 方法打印一个变量和一个初始化对象的地址。我得到变量的不同实例,但对象的地址保持不变。那么,想知道在 multiprocessing.Process 调用期间父类的成员到底发生了什么?
def __init__(self):
self.count = 0
self.db = pymongo.MongoClient()
def consumerManager(self):
for i in range(4):
p = multiprocessing.Process(target = self.consumer, args = (i,))
def consumer(self, i):
while(1):
time.sleep(i)
self.count += 1
print self.count
print os.getpid()
print id(self.db)
Run Code Online (Sandbox Code Playgroud)
如果它正在执行对象的深层复制,那么id(self.db)应该在每个进程中打印不同的 id,但这种情况不会发生。这是怎么做到的?
| 归档时间: |
|
| 查看次数: |
1935 次 |
| 最近记录: |