在python进程之间共享导入模块时是什么

时间:2016-10-21 03:12:20

标签: python

我想当我分叉一个进程然后它共享导入的模块作为它的父进程,所以我测试如下:

lock2.py:

import multiprocessing

lock=multiprocessing.Semaphore()
a=[]

test.py:

#!/usr/bin/python

import multiprocessing
import lock2
import time

def func():
    with lock2.lock:
        print "start------"
        time.sleep(5)
        lock2.a.append(1)
        print lock2.a
        print "end--------"

for i in range(5):
    p=multiprocessing.Process(target=func)
    p.start()

调用test.py时,输出为:

start------
[1]
end--------
start------
[1]
end--------
start------
[1]
end--------
start------
[1]
end--------
start------
[1]
end--------

这很奇怪,对象lock在除了对象a之外的进程之间共享(因为它有效)(因为它应该是[1,1,1,1,1]共享的)。

有人可以向我解释python如何在进程之间共享导入的模块。

0 个答案:

没有答案