前言
多进程能够在不同的CPU核心上并行运行任务,可以绕过用于线程的GIL。
多进程:更适合密集计算相关任务(cpu使用率高)。
多线程:更好地处理与IO相关的任务。
实践
我们来实现一个数据求和的功能,例如从0加到100000000。首先我们使用单个进程进行计算:
from multiprocessing import Process, cpu_count
import time
result = {
}
def counter(num_1, num_2, name):
count = 0
for i in range(num_1, num_2):
count += i
result[name] = count
print(result)
def main():
a = Process(target=counter, args=(0, 100000000, '进程1'))
a.start()
a.join()
print('运行耗时: {} 秒'.format(time.perf_counter()))
if __name__ == '__main__'