转载至:http://www.cnblogs.com/fanzhidongyzby/p/4098546.html 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型。 (2)同步非阻塞IO(Non-blocking IO) ...
分类:
其他好文 时间:
2017-08-25 14:01:25
阅读次数:
227
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待 ...
分类:
其他好文 时间:
2017-08-16 00:45:00
阅读次数:
182
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待 ...
分类:
其他好文 时间:
2017-08-15 13:24:27
阅读次数:
157
简介: BIO:同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。 NIO:同步非阻塞式IO,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用 ...
分类:
编程语言 时间:
2017-07-27 18:22:10
阅读次数:
204
在Java1.4之前的版本,Java对I/O的支持并不完善,开发人员在开发高性能I/O程序的时候,会面临以下几个问题: 1、没有数据缓存区,I/O性能存在问题 2、没有C/C++通道的概念,输入和输出流是相互独立的不能复用 3、同步阻塞式I/O通信(BIO),造成线程资源被长时间阻塞(致命缺陷) 4 ...
分类:
其他好文 时间:
2017-07-22 00:13:01
阅读次数:
205
TimeServer: TimeServerHandler: TimeClient: BIO主要的问题在于每当一个新的客户端请求连接时,服务器必须创建一个新的线程处理新接入的客户端链路,一个线程只能处理一个客户端连接。在高性能服务器应用领域,往往需要面向成千上万个客户端的并发连接,这种模型显然无法满 ...
分类:
其他好文 时间:
2017-07-18 13:35:47
阅读次数:
168
redis是一个事件驱动程序 主要包含 文件事件和时间事件 文件事件:主要就是server和client进行操作产生的文件 时间事件:主要就是一些需要定时执行的事件。 文件事件: 文件事件处理器是单线程运行的,但是通过IO多路复用,可以处理多个套接字 下面是文件事件处理器的结构 文件事件处理器主要是 ...
分类:
其他好文 时间:
2017-06-25 21:20:06
阅读次数:
278
1.同步服务调用 上图是同步调用的原理图,用户线程在完成消息序列化之后,把消息投递到通信框架,然后同步阻塞,等待通信线程发送 请求并接收到应答之后,唤醒用户同步阻塞的线程,用户线程获取到应答后返回。 2.异步服务调用 异步调用是基于JDK的Future机制,Future代表了异步操作的结果,用户可以 ...
分类:
其他好文 时间:
2017-06-21 15:58:37
阅读次数:
131
一、差异对比ApacheNginx配置相对复杂配置相对简单原生支持动态和静态页面支持静态页面模块相对安全高性能模块出产迅速、社区活跃BUG相对较少,消耗资源较多BUG相对较多,节省资源对加密支持较好对反向代理支持较好同步阻塞型应用异步非阻塞型应用二、Nginx的安装yum-yinstallg..
分类:
其他好文 时间:
2017-06-21 11:37:39
阅读次数:
160
一、引言 AQS(同步阻塞队列)是concurrent包下锁机制实现的基础,相信大家在读完本篇博客后会对AQS框架有一个较为清晰的认识 这篇博客主要针对AbstractQueuedSynchronizer的源码进行分析,大致分为三个部分: 所有的分析仅基于个人的理解,若有不正之处,请谅解和批评指正, ...
分类:
编程语言 时间:
2017-06-18 20:52:35
阅读次数:
309