# -*- coding: utf-8 -*- """ @author:XuMing([email protected]) @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()