多线程和多进程使用对比

多线程和多进程使用对比[Python基础]

多线程和多进程使用对比

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}")
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 多线程和多进程使用对比