协程理解1

news/2024/4/19 12:50:55/文章来源:https://blog.csdn.net/mutao1127877836/article/details/128089381

yield  -> yield from -> await -> asynio

版本:

        yield 生成器,功能:中断函数,yield 值

        yield from 多层迭代器组合,功能:返回中断函数嵌套的中断函数的 yiedl值

        await 简单理解 对yield from的 别名

        asynio 协程框架,底层逻辑用多路IO复用

第一个问题:协程用在什么场景?

       答: 就一个场景,数据传输。数据计算不需要协程,因为CPU没有闲着。

第二个问题:我们想让协程完成一个什么功能?

        答:数据传输时可以转交CPU控制权,当数据准备好时CPU再切过来处理。

第三个问题:什么可以完成程序(函数)的切换:

        答:yield 生成器

第四个问题:单独使用yield 能否做到 程序函数的自动切换?

        答:不能,必须手动指定切换(手动yield返回)

第五个问题:我们希望什么时候进行函数切换,这个切换的时机在哪里?

        答:当 socket(句柄)可以写入时,或者可以读取时(数据准备好让你处理了)

第六个问题:什么机制可以监听socket 可读,可写,发生异常的时机?

        答:操作系统提供的多路IO复用

第五个问题:怎么理解asynio的事件循环?

        答:最基础的事件就是 socket的可读,可写,异常信号,我们注册事件hanler 绑定到信号,信号触发我们的程序(回调),而回调的执行顺序由我们的 await 控制,及信号来了代表可以处理,但实际什么时候处理由我们控制,加await 立刻处理,不加await 可以一直等待程序处理(即使数据已经准备好了)。

个人理解, 欢迎讨论提出问题。

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_38541.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jsp393学生宿舍管理系统mysql

两个权限 管理员和 学生 1. 学生信息管理 添加学生信息(学生号,姓名 院系 班级入学日期 )修改学生信息 学生退宿舍(可以删除指定的学生也可以成批删除) 2. 宿舍信息管理 宿舍的基本信息(公寓数 宿舍…

第五届“强网”拟态防御国际精英挑战赛——特邀战队篇

第五届“强网”拟态防御国际精英挑战赛即将在南京隆重开赛!本届大赛面向全球顶尖CTF战队,在创新应用场景与技术的基础上,拓展升级赛道,全面覆盖典型网络设备。大赛汇集国内外60支精英战队,参赛阵容、数量再创新高。 本…

科普下抖音的规则,为什么别人的内容很容易火,而我的很难?

今天给大家科普下抖音的规则,为什么别人的内容很容易火,而我的很难? 上一篇给大家讲了现在做抖音还来得及么?肯定的回答,一直都来得及。 既然来得及,那么我们怎么才能做好抖音呢? 在我看来&a…

5 - 2 单选题

1.下列线索二叉树中(用虚线表示线索),符合后序线索树定义的是:B 后序线索二叉树的构建流程就是: 1.后序遍历二叉树:d b c a 2.第一个结点的前驱是NULL,即d的前驱,d的左孩子为NULL …

web表单(详解)

目录 1. 表单的概述 1.1 表单组成 2. 表单标记 2.1 input标记 2.2 select标记 2.3 textarea标记 3.HTML5新增标记 3.1 datalist标记 3.2 date 输入类型 3.3 color输入类型 3.4 button标记 3.5 details标记和summary标记 3.6 progress标记 3.7 meter标记 4 综合…

云原生微服务治理技术朝无代理架构的演进之路

摘要:本文基于对微服务治理技术从SOA, 微服务框架,到云原生架构的历史发展总结,提出了一种新的基于Javaagent技术的新一代无代理架构的服务治理技术,并介绍了其相关的代表性开源项目Sermant。本文分享自华为云社区《云原生微服务治…

Docker安装Redis集群失败经历汇总

在程序员的开发过程中,Redis可以说基本上是必不可少的缓存中间件。不管是二进制包还是docker安装Redis的文章在网上都是数不胜数。我之前自己玩Redis的时候基本不是二进制包安装就是docker安装,也没有尝试过集群方式。每次需要的时候,网上百度…

Cloud-computing 实验镜像 chinaskills_cloud_iaas.iso chinaskills_cloud_paas.iso

Cloud-computing 实验镜像 最近因新项目再次进行云计算环境的搭建, 找这两个镜像( 找chinaskills_cloud_paas.iso chinaskills_cloud_iaas.iso)颇为费劲,用尽九牛二虎之力总算找到了,该大侠还分享了诸多系统镜像和完…

Centos7搭建SVN代码控制服务器

Centos7搭建SVN代码控制服务器检查SVN是否安装创建SVN版本库配置代码库设置允许访问远程仓库的用户帐号密码设置权限控制设置SVN服务配置启动svn与停止启动SVN关闭SVN访问拉取远程仓库代码检查SVN是否安装 1、centos7系统自带SVN rpm -qa subversion2、如果没有则通过yum安装 …

Day15--加入购物车-初始化vuex

1.加入购物车: 我的操作: ************************************************************************************************************* 2.购物车里面的商品数据在多个页面都会用到。所以把购物车里面的商品数据存储在vuex里面, 我的…

Windows10安装配置allure

1、allure官方文档: https://docs.qameta.io/allure/#_about 官方文档中,windows部署allure步骤: 奈何提示scoop不是內部命令 2、安装scoop scoop官方文档:https://scoop.sh/ 需要打开power shell,执行提示的两条…

外汇天眼:英国研究人员与南非合作应对气候变化

随着南非对气候变化的担忧加剧,英国卫生部已同意与南非就九个不同项目组建一个合作研究团队,旨在拯救生命。 南非总统西里尔拉马福萨 (Cyril Ramaphosa) 与英国卫生大臣在克里克研究所会面后达成了合作协议,克里克研究所如今被称为欧洲最大的…

BUUCTF Misc 来首歌吧 荷兰宽带数据泄露 面具下的flag 九连环

来首歌吧 下载文件 使用Audacity打开 可以发现框出来的一串,放大查看 有长有短有空格,大概率是摩斯密码 ...../-.../-.-./----./..---/...../-..../....-/----./-.-./-.../-----/.----/---../---../..-./...../..---/./-..../.----/--.../-../--.../-----/----./.…

汽车蓄电池低压报警设计

目 录 摘 要 I Abstract II 第一章 绪论 1 1.1 选题背景及意义 1 1.2 国内外发展状况 2 1.2.1国内发展现状 2 1.2.2 国外蓄电池监测系统研究现状 2 1.3 研究主要内容 4 第2章 系统总体设计与算法确定 5 2.1 监测系统总体设计原理 5 2.2 主控芯片的选择 6 2.2.1 89C51单片机的概…

IPv6进阶:IPv6 过渡技术之IPv6 over IPv4 手动隧道

实验拓扑 R1-R3-R2之间的网络为IPv4环境;PC1及PC2处于IPv6孤岛。 实验需求 R1及R2为IPv6/IPv4双栈设备;在R1及R2上部署IPv6 over IPv4手工隧道使得PC1及PC2能够互相访问。 配置及实现 R3的配置如下 [R3] interface GigabitEthernet0/0/0 [R3-Gigabi…

集合框架----源码解读LikedHashSet篇

1.官方介绍 Hash表和链表实现了Set接口,具有可预测的迭代顺序。该实现与HashSet的不同之处在于它维护了一个贯穿其所有条目的双向链表。该链表定义了迭代顺序,即元素插入集合的顺序(插入顺序)。注意,如果一个元素重新插入到集合中&#xff0c…

【JAVA案例】作业管理系统(控制台版本)

博主:👍不许代码码上红 欢迎:🐋点赞、收藏、关注、评论。 格言: 大鹏一日同风起,扶摇直上九万里。 文章目录一、JAVA面向对象程序设计1.1 工程分包1.2 各类属性及功能二、数据初始化三、学生模块四、教师…

传奇单机架设登录器配置教程

传奇单机顾名思义就是在本地电脑上架设传奇,限制同一个局域网才能一起玩,我接触到几个朋友不明白外网和单机的区别 架设单机需要准备以下程序: 传奇服务端(版本Mirserver) DBC2000 (百度可直接下载) 配套登…

基于SpringBoot的会员制医疗预约服务管理信息系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SpringBoot 前端:Vue、HTML 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#…

Apifox:成熟的测试工具要学会自己写接口文档

好家伙, 在开发过程中,我们总是避免不了进行接口的测试, 而相比手动敲测试代码,使用测试工具进行测试更为便捷,高效 今天发现了一个非常好用的接口测试工具Apifox 相比于Postman,他还拥有一个非常nb的功…