python利用pool.apply_async开启多进程运算之后,cpu利用率很低是什么原因?
if len(total_array) >= multiprocessing.cpu_count():
pool_number = multiprocessing.cpu_count()
else:
pool_number = len(total_array)
print("总共区域有:", len(total_array), '开启的进程数量为:', pool_number)
pool = multiprocessing.Pool(pool_number)
for threshold2 in range(10, 11, 1): #计算多组阈值
new_normals_dict = dict() # 创建一个字典
for array in total_array: #法向量修正
neighborhood_zone_dict = dict()
normal_dict = dict()
points_dict = dict()
for i in self_function.expand_neigborhood_number(array, neighbor, 1):
neighborhood_zone_dict[i] = neighbor[i]
normal_dict[i] = normals[i]
points_dict[i] = points[i]
# result = self_function.cal_xiaosheng_normals_mut1(array, neighborhood_zone_dict, normal_dict, points_dict, threshold2, )
# new_normals_dict.update(result)
result = pool.apply_async(func=self_function.cal_xiaosheng_normals_mut1,
args=(array, neighborhood_zone_dict, normal_dict, points_dict, threshold2,))
new_normals_dict.update(result.get())
pool.close()
pool.join()