我正在学习python多处理,下面的代码在jupyter笔记本中。但是它不能执行子进程任务函数download_task
,只能输出类似0.11.
的内容,并且没有错误。你知道吗
当我将此代码复制到联机python executer时,它工作正常。你知道吗
from multiprocessing import Process
from os import getpid
from random import randint
from time import time, sleep
def download_task():
time_to_download = randint(5, 10)
print("befor sleep")
sleep(time_to_download)
print("after sleep")
def main():
start = time()
p1 = Process(target=download_task)
p1.start()
p2 = Process(target=download_task)
p2.start()
p1.join()
p2.join()
end = time()
print('%.2f.' % (end - start))
main()
我设法通过在函数名后面添加
()
来解决这个问题。你知道吗如果您在终端上运行,您将看到错误消息:
AttributeError: Can't get attribute 'download_task' on <module '__main__' (built-in)>
显然,通过只使用
download_task
,它将download_task
视为main的属性,而不是函数。你知道吗相关问题 更多 >
编程相关推荐