小编典典

Python:同时执行多项功能

python

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

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()

阅读 220

收藏
2020-12-20

共1个答案

小编典典

您做得正确。:)

尝试运行以下愚蠢的代码:

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”,然后(很长一段时间)后,您将最终看到函数结束。但是它们确实会同时执行。

由于进程需要一段时间才能启动,因此您甚至可能 “ start func1” 之前 看到“ start func2 ”。

2020-12-20