Python:同时执行多个函数 [英] Python: Executing multiple functions simultaneously

查看:181
本文介绍了Python:同时执行多个函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在 Python 中同时运行两个函数.我已经尝试了以下使用 multiprocessing 的代码,但是当我执行代码时,第二个函数仅在第一个函数完成后才启动.

I'm trying to run two functions simultaneously in Python. I have tried the below code which uses multiprocessing but when I execute the code, the second function starts only after the first is done.

from multiprocessing import Process
def func1:
     #does something

def func2:
     #does something

if __name__=='__main__':
     p1 = Process(target = func1)
     p1.start()
     p2 = Process(target = func2)
     p2.start()

推荐答案

您做得对.:)

尝试运行这段愚蠢的代码:

Try running this silly piece of code:

from multiprocessing import Process
import sys

rocket = 0

def func1():
    global rocket
    print 'start func1'
    while rocket < sys.maxint:
        rocket += 1
    print 'end func1'

def func2():
    global rocket
    print 'start func2'
    while rocket < sys.maxint:
        rocket += 1
    print 'end func2'

if __name__=='__main__':
    p1 = Process(target = func1)
    p1.start()
    p2 = Process(target = func2)
    p2.start()

您将看到它打印start func1",然后打印start func2",然后经过(非常)很长时间后,您将最终看到函数结束.但它们确实会同时执行.

You will see it print 'start func1' and then 'start func2' and then after a (very) long time you will finally see the functions end. But they will indeed execute simultaneously.

因为进程需要一段时间才能启动,您甚至可能会看到'start func2' before 'start func1'.

Because processes take a while to start up, you may even see 'start func2' before 'start func1'.

这篇关于Python:同时执行多个函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆