多线程和多进程使用对比
多线程和多进程使用对比
1、多线程和多进程使用对比例子
需求:写一个计算密集型任务,写一个IO密集型任务,分别使用多线程和多进程测试两个任务执行的消耗时间
# 计算密集型任务 def task1(): # 从0开始计算10000000次 +1操作 i = 0 for line in range(10000000): i += 1 # IO密集型任务 def task2(): time.sleep(3) if __name__ == "__main__": # 使用多线程,测试计算密集型任务 start_time = time.time() list1 = [] for i in range(6): # 创建6个子线程 p = Thread(target=task1) p.start() list1.append(p) for p in list1: p.join() end_time = time.time() print(f"【多线程-计算密集型】任务执行时间为 {end_time - start_time}") # 使用多线程,测试IO密集型 start_time = time.time() list1 = [] for i in range(6): # 创建6个子线程 p = Thread(target=task2) p.start() list1.append(p) for p in list1: p.join() end_time = time.time() print(f"【多线程-IO密集型】任务执行时间为 {end_time - start_time}") # 使用多进程,测试计算密集型 start_time = time.time() list1 = [] for i in range(6): # 创建6个子进程 p = Process(target=task1) p.start() list1.append(p) for p in list1: p.join() end_time = time.time() print(f"【多进程-计算密集型】任务执行时间为 {end_time - start_time}") # 使用多进程,测试IO密集型 start_time = time.time() list1 = [] for i in range(6): # 创建6个子进程 p = Process(target=task2) p.start() list1.append(p) for p in list1: p.join() end_time = time.time() print(f"【多进程-IO密集型】任务执行时间为 {end_time - start_time}")