java nio的理解

2019-05-28  本文已影响0人  ZMRWEGo

java nio是一种区别BIO的新I/O模型,nio即new I/O。它应该包括我们常说的同步非阻塞模型,以及异步非阻塞模型。

一、nio的三大组件

二、线程模型的优化

nio模型中,我们可以完全使用一个线程来管理所有的socket io,没有i/o切换,只是拼命的进行读、写、选择事件.但是现在的服务器,一般都是多核处理器,我们可以充分利用多核处理的优势来提升效率
优化:

  1. 事件分发器:单线程选择就绪的事件,注意,select是阻塞的,无论是通过操作系统的通知(epoll)还是不停的轮询(select,poll),这个函数是阻塞的
  2. I/O处理器,包括connect、read、write等,这种纯cpu操作,一般开启核心个线程就可以
  3. 业务线程,业务一般还有自己的业务逻辑,可能包含db操作或者rpc,只要有阻塞就开启线程

三、Reactor与Proactor的模式

nio的模式主要分为两种reactor与proactor。
reactor事件分发器将事件分发给对应的函数进行处理,这个操作是一个同步i/o操作
proactor模式直接发起一个异步的读写操作,而实际的i/o操作由操作系统完成。

上一篇 下一篇

猜你喜欢

热点阅读