当前位置: 首页 > news >正文

工厂网站开发/网站制作出名的公司

工厂网站开发,网站制作出名的公司,百度引流推广哪家好,breadcrumbs wordpress众所周知在近几个版本的Java中增加了一些对Java NIO、NIO2的支持,与此同时NodeJS技术栈中最为人称道的优势之一就是其高性能IO,那么我们今天要讨论的话题就是支撑这些技术的底层技术。开始之前先要提出的一个问题是:为什么NodeJS和Java NIO2没…

众所周知在近几个版本的Java中增加了一些对Java NIO、NIO2的支持,与此同时NodeJS技术栈中最为人称道的优势之一就是其高性能IO,那么我们今天要讨论的话题就是支撑这些技术的底层技术。

开始之前先要提出的一个问题是:

为什么NodeJS和Java NIO2没有在更早的时间出现?

答案:个人认为是底层的支撑技术还不成熟。

那么,底层技术指的是什么呢?对的,我想很多人已经猜到,是操作系统技术。本文提出的两个概念Java

NIO2和NodeJS无一例外都是用户态技术或者说是应用层技术,而这些应用层技术是运行于OS之上的,与此同时随着操作系统的进步,可以支撑的编程模型也更加的丰富。可以这么说,这两项技术完全是为了应用操作系统进步带来的红利而进化出来的技术。一般来说最先享受这种红利的技术一定是C\C++,因为OS的进步最新提供的大部分是系统调用,而C\C++是最方便应用这些系统调用的,但是同时也是最复杂的。其他平台为了也获得同样的性能,就必须不断的进化,封装,使用户可以用上这些红利,一旦那个平台停滞更新,也就是这个平台没落的时候了。对用户来说封装的越方便,对用户来说就越是友好,可能使用的人就越多。虽然很多人可以很快的写出基于这些平台的代码,但是往往不得其精髓,因为本质上还是不理解这些技术的动机和原理。下面我们讨论的这些技就是这两项技术相关的底层技术。

不管哪一种OS设计中,下面5种IO模型都是必不可少的。1. blocking I/O

2. nonblocking I/O

3. I/O multiplexing (select, poll and epoll)

4. signal driven I/O (SIGIO)

5. asynchronous I/O (the POSIX aio_ functions)

1. blocking I/O

如图所示,这种IO模型的优点是编程简单,也是OS最早支持的IO模型之一,缺点是系统调用阻塞用户动态线程执行,从而造成CPU时间浪费,IO效率低。

AAffA0nNPuCLAAAAAElFTkSuQmCC

2. nonblocking I/O

如图所示,这种IO模型的一个改进是IO是非阻塞了,但是需要长轮询,同样浪费CPU时钟周期。

AAffA0nNPuCLAAAAAElFTkSuQmCC

3. I/O multiplexing (select, poll and epoll)

如图所示,这种IO模型是当今OS提供的最稳定的IO模型,大部分主流的应用都是基于此种IO模型构建的,比如NodeJS,但是这些平台往往在这种模型之上增加一层封装来直接支持AIO。

AAffA0nNPuCLAAAAAElFTkSuQmCC

4. signal driven I/O (SIGIO)

如图所示,资料记载这种IO模型由于对比模型3没有性能优势,同时由于系统支持不稳定,很少为设计者采用。

AAffA0nNPuCLAAAAAElFTkSuQmCC

5. asynchronous I/O (the POSIX aio_ functions)

如图所示,此种IO模型是最完美的AIO,编程模型也最简单,但是能够完美支持者个模型的OS很少,网上资料显示Linux正在做这方面的努力,一旦OS在这个方面上取得进展,编程框架,平台,编程模型可能还是需要有很大程度的简化。

虽然这种模型很少有OS的支持,但是并不是说现在就没有这种AIO模型,很多框架做了这方面的工作,在用户态模拟了AIO,使用户可以更多的关注业务逻辑代码。

AAffA0nNPuCLAAAAAElFTkSuQmCC

6. 同步异步,阻塞和非阻塞

同步和异步是针对应用程序和内核的交互而言的。一直等到数据读完再返回的是同步,直接返回的是异步。阻塞和非阻塞是对进程、线程而言的,阻塞方式下读取或者写入线程一直等待,而非阻塞方式下,读取或者写入线程立即返回一个状态值。

AAffA0nNPuCLAAAAAElFTkSuQmCC

http://www.jmfq.cn/news/5069269.html

相关文章:

  • 网站安全的必要性/企业网站营销实现方式
  • 自己如何建设外贸网站建站/seo搜索引擎优化师
  • 网站做快照怎么做/百度快速提交入口
  • 三明市建设局网站/管理系统
  • 博敏网站建设/百度下载免费安装到桌面
  • 北京做兼职网站有哪些/关键词查询工具软件
  • 如何使用二级域名做网站/什么优化
  • 短租网站那家做的好/简述seo的基本步骤
  • python手机版/网站优化效果
  • 网站机房建设解决方案/超级软文网
  • 微信怎么做网站/推荐6个免费国外自媒体平台
  • 临海市建设局网站/关键词搜索引擎优化推广
  • 山西住房建设厅官方网站/济南竞价托管公司
  • 网站推广优化方案/我赢网客服系统
  • 手机免费制作微信小程序/网站seo优化多少钱
  • 太原推广型网站建设/广州seo快速排名
  • 虚拟主机多网站/英文seo外链发布工具
  • 手机网站制作公司/网络营销学什么内容
  • 网站制作公司信科网络/做网站建设优化的公司排名
  • 网站推广如何做/色盲色弱测试
  • 芜湖公司做网站/网上店铺的推广方法有哪些
  • wordpress推荐插件/最专业的seo公司
  • 广州有专做网站/域名信息查询网站
  • 如何制作网站后台/2022年明星百度指数排行
  • b站直播4000观看人数/外贸接单平台网站
  • 大城网站建设/seo投放是什么意思
  • 网站推广明细报价表/广东省各城市疫情搜索高峰进度
  • 建网站需要多久/长春seo整站优化
  • 网站开发设计素材/1个百度指数代表多少搜索
  • 静态网站如何做优化/百度app