java nio node_支撑Java NIO 与 NodeJS的底层技术

潍坊JAVA培训小编 众所周知在近几个版本的Java中增加了一些对Java

NIO、NIO2的支持,与此同时NodeJS技术栈中最为人称道的优势之一就是其高性能IO,那么潍坊JAVA小编今天要和大家讨论的话题就是支撑这些技术的底层技术。

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

为什么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效率低。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值