开发者社区> 问答> 正文

Python的多处理需要很长时间才能完成

嗨,我从python的多处理开始 我有一个像这样的简单代码:

import multiprocessing as mp
import time

def print_screen():
    print "Hello world"

def main():
    p1 = mp.Process(target=print_screen())
    p2 = mp.Process(target=print_screen())

    p1.start()
    p2.start()

    p1.join()
    p2.join()


if __name__ == '__main__':
    start_time = time.time()
    main()
    print "run time " + str(time.time() - start_time)

结果是:

Hello world
Hello world
run time 2.06299996376

你能向我解释一下为什么这些代码需要很长时间才能完成,即使“Hello world”这两行是在运行程序后立即打印出来的。随着进程数量的增加,运行时间也会增加。非常感谢。 问题来源StackOverflow 地址:/questions/59386047/python-multiprocessing-take-long-time-to-finish

展开
收起
kun坤 2019-12-25 22:09:08 372 0
1 条回答
写回答
取消 提交回答
  • 您的运行时将会有很大的变化,这取决于您运行这段代码的机器。之所以要花这么长的时间,是因为您所运行的系统实际上需要启动两个完全独立的进程,执行它们,然后停止它们并再次清理它们。 使用进程的优点是允许您使用多个核心,在完全独立的进程中运行任务,但缺点是需要创建、启动、停止和清理进程。对于不需要真正并行运行的任务,但可能需要使用各种资源(如文件或网络I/O),线程可能是比进程更好、更快的解决方案,如果这是一个考虑因素的话。 另外,一般来说:如果您正在编写新代码,那么最好使用Python 3,而不是Python 2。

    2019-12-25 22:09:12
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载