在上篇文章的最后,我们提到了,使用了多线程只是能够实现对"业务逻辑处理"的多线程,但是对于数据报文的接收还是需要一个一个来的,也就是我们上面见到的accept以及read方法阻塞问题,多线程是根本解决不了的,那么首先我们来看看accept为什么会造成阻塞,accept方法的作用是询问操作系统是否有新 ...
分类:
编程语言 时间:
2017-10-13 19:06:36
阅读次数:
160
这篇是讲解NIO的准备篇; 在JDK1.4 NIO出现之前,我们通常用到的IO都是BIO也叫同步阻塞式IO,他是面向流的,一个输入流产生一个字节的数据,一个输出流消费一个字节的数据,那么这里的阻塞主要体现在什么地方呢?比如我们从一个文件中读取数据的话,调用InputStream.read()方法,这 ...
分类:
编程语言 时间:
2017-10-13 19:04:43
阅读次数:
275
Java 《设计模式之禅(完整高清版)》 链接:http://pan.baidu.com/s/1bo7noMb 密码:5kve 《重构_改善既有代码的设计》 链接:http://pan.baidu.com/s/1miBoWDa 密码:vlbj 《微服务架构与实践(王磊著)完整版》 链接:http:/ ...
分类:
其他好文 时间:
2017-10-13 00:35:57
阅读次数:
886
看到标题,您可能觉得,这跟Netty有什么关系呢?确实,如果你完全是使用Netty的,那么可能你可以完全不需要了解Selector。但是,不得不提的是,Netty底层关于NIO的实现也是基于Java的Selector的,是对Selector的封装。所以,我个人认为理解好Selector对于使用和理解 ...
分类:
编程语言 时间:
2017-10-11 01:02:30
阅读次数:
190
如果您持续关注OneCoder,您可能会问,在《Java NIO框架Netty教程(十四) Netty中OIO模型(对比NIO)》中不是说下节介绍的是,NIO和OIO中的worker处理方式吗。这个一定会有的,只是在研究的过程中,OneCoder发现了之前遗留的文件传输的代码,所以决定先完成它。 其 ...
分类:
编程语言 时间:
2017-10-11 00:58:17
阅读次数:
473
说了这么多废话,才提到对象的传输,不知道您是不是已经不耐烦了。一个系统内部的消息传递,没有对象传递是不太现实的。下面就来说说,怎么传递对象。 如果,您看过前面的介绍,如果您善于专注本质,勤于思考。您应该也会想到,我们说过,Netty的消息传递都是基于流,通过ChannelBuffer传递的,那么自然 ...
分类:
编程语言 时间:
2017-10-11 00:56:33
阅读次数:
428
最近很多人问我有没有Netty4的Hello World样例,很早之前知道Netty要出4,当时只知道4的包名完全边了,因为Netty从JBoss中独立出来了,并采用了新的netty.io的域名,但是没想到代码也有这么大的调整。 既然答应了别人,就抽时间看一下Netty4,也顺便补充一下自己的知识。 ...
分类:
编程语言 时间:
2017-10-11 00:55:58
阅读次数:
259
了解了Netty的基本概念(http://www.it165.net/pro/html/201207/3173.html),开发起来应该会顺手很多。 在“Hello World(http://www.it165.net/pro/html/201207/3142.html)”代码中,我们只是在完成绑定 ...
分类:
编程语言 时间:
2017-10-11 00:55:24
阅读次数:
329
在学字符串消息收发(http://www.it165.net/pro/html/201207/3174.html)的时候,已经提到过。ChannelBuffer是Netty中非常重要的概念。所有消息的收发都依赖于这个Buffer。我们通过Netty的官方的文档来了解一下,基于流的消息传递机制。 In ...
分类:
编程语言 时间:
2017-10-11 00:55:08
阅读次数:
344
在《Java NIO框架Netty教程(五)- 消息收发次数不匹配的问题》里我们试图分析一个消息收发次数不匹配的问题。当时笔者还是心存疑惑的。所以决定先学习一下Java NIO的Selector机制。 经过简单的了解,笔者大胆的猜测和“武断”一下该问题的原因。 首先,Selector机制让我们注册一 ...
分类:
编程语言 时间:
2017-10-11 00:54:24
阅读次数:
126