同步跟异步

代码

import asyncio
import time


now = lambda: time.time()


# 同步
def work1():
    print(f"work1 is called,时间: {now()}")
    time.sleep(0.5)


time1 = now()
for i in range(6):
    work1()
print("同步花费的时间是{}\n".format(now() - time1))


# 异步
async def work2():
    print(f"work2 is called,时间: {now()}")
    await asyncio.sleep(0.5)


time2 = now()
loop = asyncio.get_event_loop()
tasks = [work2() for x in range(6)]
loop.run_until_complete(asyncio.wait(tasks))
print("异步花费的时间是{}".format(now() - time2))

运行结果

在这里插入图片描述

补充

  • 在代码中,同步跟异步所调用的函数,分别每次都睡眠了0.5s
  • 同步跟异步分别都调用了六次函数
  • 而在运行结果中可以发现,同步调用一共睡眠了 0.5 × 6 秒,异步调用则只是睡眠了唯一的一次 0.5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值