嗨,我从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
您的运行时将会有很大的变化,这取决于您运行这段代码的机器。之所以要花这么长的时间,是因为您所运行的系统实际上需要启动两个完全独立的进程,执行它们,然后停止它们并再次清理它们。 使用进程的优点是允许您使用多个核心,在完全独立的进程中运行任务,但缺点是需要创建、启动、停止和清理进程。对于不需要真正并行运行的任务,但可能需要使用各种资源(如文件或网络I/O),线程可能是比进程更好、更快的解决方案,如果这是一个考虑因素的话。 另外,一般来说:如果您正在编写新代码,那么最好使用Python 3,而不是Python 2。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。