多线程和多进程使用对比
多线程和多进程使用对比
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}")

![多线程和多进程使用对比[Python基础]](https://www.zixueka.com/wp-content/uploads/2023/10/1696934536-7625399d10009a5.jpg)
