當前位置:成語大全網 - 書法字典 - 如何多線程(多進程)加速while循環(語言-python)?

如何多線程(多進程)加速while循環(語言-python)?

將numpy作為np導入

導入操作系統

導入系統

將多處理作為mp導入

導入時間

def MCS(輸入數據,中間數據):

#t1 = time.perf_counter()

左= 0

lp = 0

雖然正確:

lp = lp + 1

數據池=輸入數據+左

輸出數據= med * 0.05 *數據池/ (10000 + med)

output _ data = NP . where(output _ data & gt;數據池、數據池、輸出數據)

left =數據池-輸出數據

cri =(輸入數據-輸出數據)/輸入數據* 100

#print(lp,data_pool,output_data,cri)

如果cri & lt= 1:

破裂

t2 = time.perf_counter()

#打印(f '在{t2 - t1}秒內完成')

if __name__ == "__main__ ":

pool = mp。池(進程=5)

任務= []

對於np.linspace中的I(0.4,0.6,num = 10):

任務.追加([100,i])

t1 = time.perf_counter()

pool.starmap(主控站,任務)

#pool.apply_async(MCS,args=(100,0.4))

t2 = time.perf_counter()

#pool.join()

#pool.close()

對於np.linspace中的I(0.4,0.6,num = 10):

主控站(100,I)

t3 = time.perf_counter()

打印(在{t2 - t1}秒內完成)

打印(在{t3 - t2}秒內完成)

原因可能是只運行了壹個示例,

如圖,測試了10個例子,測試結果如下。

以15秒的成績完成。18856.888688886816

用時73.1936681799998秒

並行確實有壹定的加速作用。