【发布时间】:2018-06-19 21:46:32
【问题描述】:
我来这里是因为我的 Jupiter 的 Python3 笔记本有问题。 我需要创建一个使用多处理库的函数。 在实现它之前,我做了一些测试。 我发现了很多不同的示例,但问题每次都相同:我的代码已执行,但笔记本界面中没有任何反应:
我尝试在 jupyter 上运行的代码是这样的:
import os
from multiprocessing import Process, current_process
def doubler(number):
"""
A doubling function that can be used by a process
"""
result = number * 2
proc_name = current_process().name
print('{0} doubled to {1} by: {2}'.format(
number, result, proc_name))
return result
if __name__ == '__main__':
numbers = [5, 10, 15, 20, 25]
procs = []
proc = Process(target=doubler, args=(5,))
for index, number in enumerate(numbers):
proc = Process(target=doubler, args=(number,))
proc2 = Process(target=doubler, args=(number,))
procs.append(proc)
procs.append(proc2)
proc.start()
proc2.start()
proc = Process(target=doubler, name='Test', args=(2,))
proc.start()
procs.append(proc)
for proc in procs:
proc.join()
当我在没有 Jupyter 的情况下运行我的代码但使用命令“python my_progrem.py”时没关系,我可以看到日志:
对于我的示例,在 Jupyter 中,是否有一种方法可以在我可以在之后使用的变量/对象中捕获我的两个任务(proc1 和 proc2,它们都调用函数“doubler”)的结果? 如果“是”,我该怎么做?
【问题讨论】:
标签: multiprocessing jupyter-notebook python-3.6