# -*- coding: utf-8 -*- """ @author:XuMing(xuming624@qq.com) @description: """ from multiprocessing import Process, Queue from time import time core_num = 8 def task_handler(curr_list, result_queue): total = 0 for number in curr_list: total += number result_queue.put(total) def main(): processes = [] number_list = [x for x in range(1, 100000001)] result_queue = Queue() index = 0 # 启动core_num(8)个进程将数据切片后进行运算 index_batch = int(100000000 / core_num) for _ in range(core_num): p = Process(target=task_handler, args=(number_list[index:index + index_batch], result_queue)) index += index_batch processes.append(p) p.start() # 开始记录所有进程执行完成花费的时间 start = time() for p in processes: p.join() # 合并执行结果 total = 0 while not result_queue.empty(): total += result_queue.get() print(total) end = time() print('Execution time: ', (end - start), 's', sep='') if __name__ == '__main__': main()