2017年10月13日

摘要: 记住NIO在jdk1.7版本之前是同步非阻塞的,以前的inputsream是同步阻塞的,上面学习完成了Buffer现在我们来学习channel channel书双向的,以前阻塞的io的inputstream都是单向的 channel有四种连接状态 connect accept read write 阅读全文
posted @ 2017-10-13 16:57 luzhouxiaoshuai 阅读(245) 评论(0) 推荐(0)
摘要: 在NIO同步非阻塞的场景中和原来同步阻塞最大的却别就是引入了上面的Buffer对象,现在我们来学校上面的BUffer对象 我们来看看程序的代码: 程序的输出结果是: 使用flip复位:java.nio.HeapIntBuffer[pos=0 lim=3 cap=10]容量为: 10限制为: 3获取下 阅读全文
posted @ 2017-10-13 16:17 luzhouxiaoshuai 阅读(372) 评论(0) 推荐(0)
摘要: 在上面一节中,服务端收到客户端的连接之后,都是new一个新的线程来处理客户端发送的请求,每次new 一个线程比较耗费系统资源,如果100万个客户端,我们就要创建100万个线程,相当的 耗费系统的资源,服务器是没有办法支持这样多的客户端进行连接的 我们可以采用线程池的方式来实现:提高 阻塞模式:列如客 阅读全文
posted @ 2017-10-13 14:42 luzhouxiaoshuai 阅读(481) 评论(0) 推荐(0)
摘要: 客户端的代码: 我们来对上面的功能进行总结: 阅读全文
posted @ 2017-10-13 14:36 luzhouxiaoshuai 阅读(182) 评论(0) 推荐(0)
摘要: 1、首先介绍下那个时候使用RingBuffer,那个时候使用disruptor ringBuffer比较适合场景比较简单的业务,disruptor比较适合场景较为复杂的业务,很多复杂的结果必须使用disruptor 我们来看看多消费者多生产者的情况 程序运行的效果是: 当前消费者: c1,消费信息: 阅读全文
posted @ 2017-10-13 14:04 luzhouxiaoshuai 阅读(2927) 评论(0) 推荐(0)
摘要: 先c1和c2并行消费生产者产生的数据,然后c3再消费该数据 我们来使用代码实现:我们可以使用Disruptor实例来实现,也可以不用产生Disruptor实例,直接调用RingBuffer的api来实现,不清楚看上一节使用的api函数workpool和BatchEventProcess来辅助实现消费 阅读全文
posted @ 2017-10-13 11:45 luzhouxiaoshuai 阅读(894) 评论(0) 推荐(0)

导航