簡體   English   中英

Python線程同時執行某些操作

[英]Python threads do something at the EXACT same time

Python中是否可能有2個,3個或更多線程能夠同時執行某些操作-恰好在同一時刻? 一個線程是否有可能延遲,另一個線程正在等待,以便最后一個請求可以同時執行?

示例:有兩個線程正在計算特定的參數,完成后,它們需要同時單擊一個按鈕(將發布請求發送到服務器)。

“精確同時”確實非常困難,幾乎可以同時實現,但是您需要使用多處理而不是線程。 這里舉一個例子。

from time import time
from multiprocessing import Pool


def f(*args):
    while time() < start + 5: #syncronize the execution of each process
        pass
    print(time())

start = time()

with Pool(10) as p:
    p.map(f, range(10))

它打印

1495552973.6672032
1495552973.6672032
1495552973.669514
1495552973.667697
1495552973.6672032
1495552973.668086
1495552973.6693969
1495552973.6672032
1495552973.6677089
1495552973.669164

請注意,某些過程實際上是同時進行的(精度為10e-7秒)。 不可能保證所有過程都將在同一時刻執行。 但是,如果將進程數限制為實際擁有的核心數,則大多數情況下它們將完全在同一時刻運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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