def __to_dp_matrix_mt(self, value_matrix):
from concurrent import futures
col_data_mapping = {}
try:
with futures.ProcessPoolExecutor(self.max_workers) as executor:
future_list = [
executor.submit(
_to_dp_list_helper, self, col_idx,
data_list, self.__get_col_type_hint(col_idx),
self.strip_str_value
)
for col_idx, data_list
in enumerate(zip(*value_matrix))
]
for future in futures.as_completed(future_list):
col_idx, value_dp_list = future.result()
col_data_mapping[col_idx] = value_dp_list
finally:
logger.debug("shutdown ProcessPoolExecutor")
executor.shutdown()
return list(zip(*[
col_data_mapping[col_idx] for col_idx in sorted(col_data_mapping)
]))
评论列表
文章目录