Python异步async/await概念、用法(一)

  • IO编程与同步异步

    同步异步、阻塞非阻塞,都是围绕着IO展开的概念。

    多线程和多进程的模型虽然解决了并发问题,但是系统切换线程的开销也很大。

    另一种解决IO问题的方法是异步IO。当代码需要执行一个耗时的IO操作时,它只发出IO指令,并不等待IO结果,然后就去执行其他代码了。一段时间后,当IO返回结果时,再通知CPU进行处理。

    在“发出IO请求”到收到“IO完成”的这段时间里,同步IO模型下,主线程只能挂起(让出CPU时间片),但异步IO模型下,主线程并没有休息,而是在消息循环中继续处理其他消息。这样,在异步IO模型下,一个线程就可以同时处理多个IO请求,并且没有切换线程的操作。

  • IO编程

    计算机的核心是CPU,CPU运算的程序、数据只能是内存中的,因此CPU运行的时刻所需的元素都要已经在内存中,对于没有放在内存中的,需要载入(input)内存,计算完用不到的数据就需要输出(output)到磁盘上。

    因为CPU计算速度远高于I/O速度,就有了I/O编程这个细分领域。

    CPU一次只能运行一个进程。

    在这样几个条件下,就有了I/O编程的几个方案:

    1. 让CPU等着I/O完成,才继续执行后续代码:称为同步
    2. CPU不等待I/O,去干别的事情:称为异步

    同步异步的区别,就是CPU是否等待IO执行的结果。

    操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值