########################################################
# 同步：线程执行
# import time
#
# def dm01():
#     print("1")
#     time.sleep(3) # 真的要休眠3秒钟
#     print("2")
#
#
# def dm02():
#     print("3")
#     time.sleep(3) # 真的要休眠3秒钟
#     print("4")
#
#
# start_time = time.time()
# dm01()
# dm02()
# end_time = time.time()
# spend_time = end_time - start_time
# print("spend_time-->", spend_time)


########################################################
# 异步：协程执行
import time
# io:input-output，输入输出
# 同步/异步
# 同步：同频
# 异步：不同频。
# 举例：外卖（送你手上就是同步，放到外卖架上就是异步）
# 协程：让程序等待的时候去干别的事（提升效率）。
# 应用场景：在一些IO密集型任务中使用。
# IO密集型任务：文件上传，下载，读取等。

import asyncio

async def dm01():
    print("1")
    await asyncio.sleep(3) # 休眠3秒钟，但是不是一直等待，而是在这休眠期间可以干别的事
    print("2")


async def dm02():
    print("3")
    await asyncio.sleep(3) # 休眠3秒钟，但是不是一直等待，而是在这休眠期间可以干别的事
    print("4")


async def dm03():
    start_time = time.time()

    # 方式二
    await asyncio.gather(dm01(),dm02())

    # 方式一
    # t1 = asyncio.create_task(dm01())
    # t2 = asyncio.create_task(dm02())
    # await t1
    # await t2
    end_time = time.time()
    spend_time = end_time - start_time
    print("spend_time-->", spend_time)

asyncio.run(dm03())
