问题是利用如下代码并没有起到加速循环,提高效率的目的。
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()