我试图使我的程序与多处理模块一起运行,但没有成功,因此我恢复了基础知识,并尝试了文档中的简单示例。但是,即使是最简单的示例也不起作用。这是我尝试的示例:
from multiprocessing import Process
def f(name):
print('hello', name)
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
print('Got here')
p.join(5)
print('finally')
这是文档中的一些调整。当我运行它时,它会打印“ Got here”,并在5秒钟后它会显示“ finally”。它不会打印“你好鲍勃”,并且没有5秒钟的超时,只是在“知道这里”之后进入睡眠状态。
我在Mac上使用带有Python 3.6.4的IDLE。我的实际程序比这更复杂,但是如果我不能使这个简单的程序正常工作,我将完全陷入困境。
这是另一个不起作用的简单示例:
from multiprocessing import Process
def print_process(number):
print('Printing from process ',number)
if __name__ == '__main__':
process_list = []
for i in range(20):
p = Process(target= print_process, args = (i,))
process_list.append(p)
print(i)
for p in process_list:
print('Starting')
p.start()
它将打印数字0到19,然后在进入睡眠状态之前打印两次“开始”。