簡體   English   中英

Python:並行執行多個功能

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM