实例讲解python中的协程

作者:laozhang 时间:2022-08-10 20:10:38 

python协程

线程和进程的操作是由程序触发系统接口,最后的执行者是系统;协程的操作则是程序员。

协程存在的意义:对于多线程应用,CPU通过切片的方式来切换线程间的执行,线程切换时需要耗时(保存状态,下次继续)。协程,则只使用一个线程,在一个线程中规定某个代码块执行顺序。

协程的适用场景:当程序中存在大量不需要CPU的操作时(IO),适用于协程;

event loop是协程执行的控制点, 如果你希望执行协程, 就需要用到它们。

event loop提供了如下的特性:

注册、执行、取消延时调用(异步函数)

创建用于通信的client和server协议(工具)

创建和别的程序通信的子进程和协议(工具)

把函数调用送入线程池中

下面我们来举个例子:

协程实例


import asyncio

asyncdef cor1():
 print("COR1 start")
 await
 cor2()
 print("COR1 end")

asyncdef cor2():
 print("COR2")

loop = asyncio.get_event_loop()
loop.run_until_complete(cor1())
loop.close()

最后三行是重点。

asyncio.get_event_loop() : asyncio启动默认的event loop

run_until_complete() : 这个函数是阻塞执行的,知道所有的异步函数执行完成,

close() : 关闭event loop。

标签:python,协程
0
投稿

猜你喜欢

  • django的登录注册系统的示例代码

    2021-05-14 23:27:59
  • 细化解析:SQL Server数据库的集群设计

    2009-02-05 15:59:00
  • Python实现随机创建电话号码的方法示例

    2021-08-31 06:38:03
  • python字符串str和字节数组相互转化方法

    2022-02-14 08:31:48
  • Django Web开发中django-debug-toolbar的配置以及使用

    2022-12-15 22:32:14
  • python 如何对Series中的每一个数据做运算

    2023-11-19 23:33:07
  • Python time库的时间时钟处理

    2022-12-18 23:04:23
  • python爬虫使用requests发送post请求示例详解

    2022-02-26 16:50:22
  • Python 中迭代器与生成器实例详解

    2023-02-27 14:47:41
  • 用asp程序读取网站的alexa世界排名

    2008-11-23 20:43:00
  • pybind11和numpy进行交互的方法

    2021-08-18 23:24:14
  • python各种语言间时间的转化实现代码

    2022-06-27 14:54:28
  • 在python中实现对list求和及求积

    2022-05-28 15:02:16
  • AJAX应用之草稿自动保存

    2007-08-23 08:29:00
  • Pytorch使用MNIST数据集实现基础GAN和DCGAN详解

    2021-11-17 02:14:33
  • 使用Python的PIL模块来进行图片对比

    2022-04-28 19:18:36
  • 利用Python如何实现一个小说网站雏形

    2023-09-22 05:52:07
  • Python中的迭代器与生成器使用及说明

    2022-01-01 08:14:27
  • python+opencv识别图片中的圆形

    2022-02-10 00:04:23
  • 教程javascript的function(函数)

    2007-09-30 13:38:00
  • asp之家 网络编程 m.aspxhome.com