[英]Python: Executing multiple functions in parallel
我想澄清一些事情,因為我不確定理解並行運行的想法是否正確。 下面是我的代碼,但是運行它將首先返回1到8,然后返回10到19。我想看到它返回1,10,2,11,3,13,etc
。 因為這是我認為如果兩個功能同時運行的話應該會發生的情況。 這是否真的在發生,但只是因為處理速度如此之快而按順序打印出來了?
def func1():
for i in range(1,9):
print(i)
def func2():
for i in range(10,20):
print(i)
from multiprocessing import Process
p1 = Process(target=func1)
p1.start()
p2 = Process(target=func2)
p2.start()
p1.join()
p2.join()
它可以工作,但是函數結束太快,請改用此方法,以便您可以看到它們並行工作:
import time
def func1():
for i in range(1, 9):
time.sleep(2)
print(i)
def func2():
for i in range(10, 20):
time.sleep(3)
print(i)
from multiprocessing import Process
p1 = Process(target=func1)
p1.start()
p2 = Process(target=func2)
p2.start()
p1.join()
p2.join()
它運行太快,而編譯器要執行p2時,p1已經結束。 順便說一下,python並行性是sudo-paralelism,在python上沒有多線程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.