def _multi_cpu(self, _func, job_queue: list, timeout: int) -> list:
if _getLen(job_queue) == 0:
return []
index = _get_index(job_queue, self.cpu_num)
cpu_pool = multiprocessing.Pool(processes=self.cpu_num)
mgr = multiprocessing.Manager()
process_bar = mgr.list()
for i in range(self.cpu_num):
process_bar.append(0)
result_queue = cpu_pool.map(
_multi_thread,
[[_func, self.cpu_num, self.thread_num,
job_queue[int(index[i][0]): int(index[i][1] + 1)],
timeout, process_bar, i]
for i in range(len(index))])
result = []
for rl in result_queue:
for r in rl:
result.append(r)
return result
评论列表
文章目录