多进程计算数组的平方
注意多进程为了多个进程共享数据,存储数据一定要用manager.list而不能用python自己的list
from multiprocessing import Process, Manager
# 进程处理函数
def thread_func(sub_array, results, start):
for index, num in enumerate(sub_array):
results[start+index] = num**2
# 多进程计算数组的平方
if __name__ == '__main__':
num_thread = 20
array = list(range(100))
with Manager() as manager:
process_list = []
results = manager.list(range(len(array)))
for thr in range(num_thread):
start, end = len(array) // num_thread * thr, len(array) // num_thread * (thr + 1)
if thr == num_thread - 1:
end = len(array)
sub_array = array[start: end]
p = Process(target=thread_func, args=(sub_array, results, start))
p.start()
process_list.append(p)
for i in process_list:
p.join()
print('finish')
print(results)



