我写了一个非常简单的脚本来玩多处理:
import multiprocessing
import time
def func1(d):
while d['message'] != 'kill':
print(d['message'])
print('done')
def func2(d):
for i in range(60):
time.sleep(1)
d['message'] = 'Message ' + str(i)
d['message'] = 'kill'
if __name__ == '__main__':
mgr = multiprocessing.Manager()
d = mgr.dict()
d['message'] = 'Waiting...'
print(d['message'])
proc1 = multiprocessing.Process(target=func1,args=(d,))
proc2 = multiprocessing.Process(target=func2,args=(d,))
proc1.start()
proc2.start()
当我运行此操作时,请收到以下错误:
处理流程-2:
追溯(最近的呼叫最后):
文件“C:\ Python34 \ lib \ multiprocessing \ managers.py”,第724行,在_callmethod中 conn = self._tls.connection
AttributeError:'ForkAwareLocal'对象没有属性'connection'
我看到有些人遇到类似的问题,因为他们给的文件与标准库引用的模块名称相同,但我只写了一个.py文件!