随笔分类 -  01.Java NIO

摘要:网络通信高性能的三个主题: 1) 传输:用什么样的通道将数据发送给对方,BIO、NIO或者AIO,IO模型在很大程度上决定了框架的性能; 2) 协议:采用什么样的通信协议,HTTP或者内部私有协议。协议的选择不同,性能模型也不同。相比于公有协议,内部私有协议的性能通常可以被设计的更优; 3) 线程: 阅读全文
posted @ 2016-04-28 21:56 moonandstar08 阅读(429) 评论(0) 推荐(0) 编辑
摘要:请参见:http://blog.csdn.net/suifeng3051/article/details/44747333 http://my.oschina.net/lifany/blog/513107?fromerr=a1fc2EIZ http://my.oschina.net/lifany/b 阅读全文
posted @ 2016-03-02 22:49 moonandstar08 阅读(284) 评论(0) 推荐(0) 编辑
摘要:Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络服务器和客户端程序。换句话说,Netty是一个NIO框架,使用它可以简单快速地开发网络应用程序,比如客户端和服务端的协议。Netty大大简化了网络程序的开发过程比如TCP和UDP的 Socket的开发。 "快速和简单" 阅读全文
posted @ 2016-02-22 22:04 moonandstar08 阅读(499) 评论(0) 推荐(0) 编辑
摘要:步骤一:打开ServerSocketChannel,用于监听客户端的连接,它是所有客户端连接的父管道,代码示例如下: ServerSocketChannel acceptorSvr = ServerSocketChannel.open(); 步骤二:绑定监听端口,设置连接为非阻塞模式,示例代码如下: 阅读全文
posted @ 2016-02-22 21:36 moonandstar08 阅读(625) 评论(0) 推荐(0) 编辑
摘要:步骤一:打开SocketChannel,绑定客户端本地地址(可选,默认系统会随机分配一个可用的本地地址),示例代码如下: SocketChannel clientChannel = SocketChannel.open(); 步骤二:设置SocketChannel为非阻塞模式,同时设置客户端连接的T 阅读全文
posted @ 2016-02-22 21:29 moonandstar08 阅读(310) 评论(0) 推荐(0) 编辑
摘要:在高性能的I/O设计中,有两个比较著名的模式Reactor 和 Proactor 模式,其中 Reactor模式用于同步 I/O ,而Proactor 运用于异步 I/O操作。 在比较这两个模式之前,我们首先的搞明白几个概念,什么是阻塞和非阻塞,什么是同步和异步,同步和异步是针对应用程序和内核的交互 阅读全文
posted @ 2016-02-22 21:08 moonandstar08 阅读(313) 评论(0) 推荐(0) 编辑
摘要:IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请... 阅读全文
posted @ 2015-12-22 22:13 moonandstar08 阅读(4354) 评论(0) 推荐(1) 编辑
摘要:NIO中的两个核心对象:缓冲区和通道,在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如果我们使用get()方法从缓冲区获取数据或者使用put()方法把数据写入缓冲区,都会引起缓冲区状态的变化。本文为NI... 阅读全文
posted @ 2015-09-18 20:50 moonandstar08 阅读(326) 评论(0) 推荐(0) 编辑
摘要:Java NIO:NIO概述 在上一篇博文中讲述了几种IO模型,现在我们开始进入Java NIO编程主题。NIO是Java 4里面提供的新的API,目的是用来解决传统IO的问题。本文下面分别从Java NIO的几个基础概念介绍起。 以下是本文的目录大纲: 一.NIO中的几个基础概念 二.C... 阅读全文
posted @ 2015-09-18 20:35 moonandstar08 阅读(358) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示