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

微信关注我们

原文链接: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...

相关文章

发表评论

资源下载

更多资源
Mario

Mario

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

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

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