netty
pantherCode
弱者看中道德和情感,强者重视利益和力量,我喜欢这个美丽又肮脏的世界!
展开
-
netty并发编程
1. JAVA内存模型与多线程编程1.1. 硬件的发展和多任务处理随着硬件特别是多核处理器的发展和价格的下降,多任务处理已经是所有操作系统必备的一项基本功能。在同一个时刻让计算机做多件事情,不仅仅是因为处理器的并行计算能力得到了很大提升,还有一个重要的原因是计算机的存储系统、网络通信等IO性能与CPU的计算能力差距太大,导致程序的很大一部分执行时间被浪费在IO wait上面,CPU的强大运转载 2015-08-09 22:29:43 · 1711 阅读 · 0 评论 -
OIO和NIO的区别
1、OIO中,每个线程只能处理一个channel(同步的,该线程和该channel绑定,)。NIO中,每个线程可以处理多个channel(异步)。那么OIO如何处理海量连接请求呢?是对每个请求封装成一个request,然后从线程池中挑一个worker线程专门为此请求服务,如果线程池中的线程用完了,就对请求进行排队。请求中如果有读写数据,是会阻塞线程的 2、NIO中c转载 2015-08-29 21:55:24 · 1149 阅读 · 0 评论 -
netty学习(二)--传统的bio编程
网络编程的基本模型是Client/Server模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定ip地址和监听端口),客户端通过连接操作向服务端监听的地址发送连接请求,通过三次握手建立连接,如果连接成功,双方就可以通过socket进行通信。在基于传统的同步阻塞模型开发中,ServerSocket负责绑定IP地址,启动监听端口:Socket负责发起连接请求操作。操作连原创 2015-08-18 22:42:58 · 1262 阅读 · 0 评论 -
netty学习(一)--linux下的网络io模型简介
linux的内核将所有的外部设备都看作一个文件来操作,对一个文件的读写操作会调用内核提供的系统命令,返回一个file descriptor(fd,文件描述符)。而对一个socket的读写也会有相应的描述符,成为socketfd(socket描述符),描述符就是一个数字,它指向内核中的一个结构体(文件路径,数据区等一些属性)。 根据unix编程对I/O模型的分类,unix提原创 2015-08-18 22:09:54 · 1361 阅读 · 0 评论 -
netty学习(三)----伪异步IO编程
为了解决同步阻塞I/O面临的一个链路需要一个线程处理的问题,后来有人对它的线程模型进行了优化,服务器端通过一个线程池来处理多个客户端的请求接入,形成客户端个数M;线程池最大线程数N的比例关系,其中M可以远远大于N,通过线程池可以灵活的调配线程资源,设置线程的最大值,防止由于海量并发接入导致线程耗尽系统资源。 伪异步IO的服务器端代码:package com.panther.原创 2015-09-04 21:10:45 · 704 阅读 · 0 评论 -
netty学习(四)----伪异步IO的弊端
要对伪异步IO的弊端进行深入的分析,首先我们看两个JAVA同步I/O的API说明: /** * Reads some number of bytes from the input stream and stores them into * the buffer array b. The number of bytes actually read is * r原创 2015-09-05 17:04:19 · 1206 阅读 · 0 评论 -
netty学习(5)--NIO基础知识
NIO是new io的简称,但是nio类库的目标就是让Java支持非阻塞I/O,所以NIO也被解释为非阻塞IO(Non-block I/O)。与Socket和ServerSocket类相对应,NIO也提供了SocketChannel和ServerSocketChannel两种不同的套接字通道实现,这两种新增的通道支持阻塞和非阻塞两种形式。阻塞模式使用简单,但是性能和可靠性不好,非阻塞模式和原创 2015-09-13 21:12:41 · 684 阅读 · 0 评论 -
netty学习(6)---NIO服务器端实现
NIO服务器创建的步骤:步骤一:打开ServerSocketChannel,用于监听客户端的连接,它是所有客户端连接的父管道:serverSocketChannel = ServerSocketChannel.open() 步骤二:绑定监听端口,设置连接为非阻塞模式:serverSocketChannel.configureBlocking(false);//设置连接为非阻塞模式原创 2015-09-19 15:41:04 · 664 阅读 · 0 评论