陆游与代代
2022-03-10 16:22
采纳率: 50%
浏览 40

如何多线程(多进程)加速while循环(语言-python)

问题是利用如下代码并没有起到加速循环,提高效率的目的。

import numpy as np
import os
import sys
import multiprocess as mp
import time

def MCS(input_data, med):
t1 = time.perf_counter()
left = 0
lp = 0
while True:
lp = lp + 1
data_pool = input_data + left
output_data = med * 0.05 * data_pool / (10000 + med)
output_data = np.where(output_data > data_pool, data_pool, output_data)
left = data_pool - output_data
cri = (input_data - output_data) / input_data * 100
print(lp, data_pool, output_data, cri)
if cri <= 1:
break
t2 = time.perf_counter()
print(f'Finished in {t2 - t1} seconds')

if name == 'main':
pool = mp.Pool(processes=10)
pool.apply_async(MCS, args=(100, 0.4))
pool.close()
pool.join()

运行结果和没有使用多线程的结果相差不大。希望可以利用多线程显著提高while循环的速度,节省时间。
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

相关推荐 更多相似问题