首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://blog.51cto.com/yerikyu/2645941

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

阻塞、非阻塞、多路复用、同步、异步、BIO、NIO、AIO 一锅端

承接上文的操作系统,关于IO会涉及到阻塞、非阻塞、多路复用、同步、异步、BIO、NIO、AIO等几个知识点。知识点虽然不难但平常经常容易搞混,特此Mark下,与君共勉。 1 阻塞跟非阻塞 1.1 阻塞 阻塞IO 阻塞IO情况下,当用户调用read后,用户线程会被阻塞,等内核数据准备好并且数据从内核缓冲区拷贝到用户态缓存区后read才会返回。可以看到是阻塞的两个部分。 CPU把数据从磁盘读到内核缓冲区。 CPU把数据从内核缓冲区拷贝到用户缓冲区。 1.2 非阻塞 非阻塞IO 非阻塞IO发出read请求后发现数据没准备好,会继续往下执行,此时应用程序会不断轮询polling内核询问数据是否准备好,当数据没有准备好时,内核立即返回EWOULDBLOCK错误。直到数据被拷贝到应用程序缓冲区,read请求才获取到结果。并且你要注意!这里最后一次 read 调用获取数据的过程,是一个同步的过程,是需要等待的过程。这里的同步指的是内核态的数据拷贝到用户程序的缓存区这个过程。 1.3 IO多路复用 IO多路复用 非阻塞情况下无可用数据时,应用程序每次轮询内核看数据是否准备好了也耗费CPU,能否不让它轮...

阿里云 MaxCompute 2021-2 月刊

MaxCompute 2月新发布功能1、MaxCompute SQLML 功能(中国区)商业化发布 查看文档 >> MaxCompute SQLML 支持使用SQL语言在 MaxCompute 中创建、训练和应用机器学习模型,实现 AI 普惠。 适用客户 各个领域的 SQL从业人员/ 数据工程师 / 数据分析师 / 数据科学家 发布功能MaxCompute SQLML 可以让数据工程师、分析师和数据科学家使用 SQL 语言在 MaxCompute 中创建、训练和应用机器学习模型,使 SQL 从业人员利用现有的 SQL 工具和技能就能应用机器学习的能力,同时无需做数据迁移,实现机器学习的普惠。2、MaxCompute 湖仓一体功能商业化发布 查看文档 >> MaxCompute 湖仓一体方案融合数据湖的灵活性、生态丰富性与数据仓库的企业级能力,构建数据湖和数据仓库融合的数据管理平台。 适用客户 有以下诉求企业中的 CTO / 数据平台架构师 / 大数据部门主管 / 数据开发人员等 • 已经基于 Hadoop 集群搭建数据平台,同时对集群资源弹性有需求,希望利用 M...

相关文章

发表评论

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat

Apache Tomcat

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。