asynchronous programing异步编程基础
前言✨
说到异步编程不得不提到yield这个关键字。yield相当于return,用于函数的返回,可以返回某个值也可以直接作为结束函数的返回,但是yield和return不同的是,yield可以从上次程序结束的地方开始重新运行。
在执行yield所在的函数时,首先并不会直接执行函数,而是会生成一个生成器。然后运行next()方法,函数才开始正式执行,在执行函数过程中遇到了yield关键字,函数进行return并且暂停,再次运行next()方法后程序从上次结束的地方开始运行。
这便为异步编程打下了基础,我们在一个函数执行等待的期间,添加一个yield关键字,让它跳出函数执行,执行其他的函数,然后执行完后再从上一次的位置继续执行,就加快了程序整体的运行时间,避免了浪费,实现了异步效果。
举个🌰:
1 | import time |
上面的例子是一个计时打印的例子,利用yield关键字。在等待3秒和等待10秒的两个函数中不停切换,实现异步编程。
上面的代码可以用python内置的asyncio进行转写,在需要进行异步的函数前面加上关键字asyncio,然后yield语句替换为await asyncio.sleep(0),用库中的get_event_loop()方法对异步程序进行循环,创建异步循环任务。
1 | import time |
代码参考来自:麦兜搞IT的教程
异步编程概念参考来自:python中yield的用法详解——最简单,最清晰的解释
- 标题: asynchronous programing异步编程基础
- 作者: Arya
- 创建于 : 2023-11-13 18:00:00
- 更新于 : 2023-11-15 17:06:00
- 链接: https://aryagala0.github.io/2023/11/13/python基础/asyn异步编程基础/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论