我试图在Python中同时运行两个函数。我已经尝试使用下面的代码,multiprocessing但是当我执行代码时,第二个函数仅在第一个函数完成后才启动。
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()
您做得正确。:)
尝试运行以下愚蠢的代码:
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 ”。