#!/usr/bin/env python # -*- coding: UTF-8 -*- """ @Project :IoD_data_analysis_tool @File :distribute_task.py @IDE :PyCharm @Author :rengengchen @Time :2022/8/8 16:55 """ import math import multiprocessing def equally_distributing_task(target, tasks, *args, results=None, num_processors=8): len_tasks = len(tasks) process_offset = math.ceil(len_tasks / num_processors) for i in range(num_processors): sub_tasks = tasks[i * process_offset: (i + 1) * process_offset] if sub_tasks: if results: multiprocessing.Process(target=target, args=(sub_tasks, results, *args)).start() else: multiprocessing.Process(target=target, args=(sub_tasks, *args)).start() else: break return results