這一篇要說明的是,如何使用 JDK 7 推出的 NIO 2 進行 TCP
程式開發,底下的類別圖只是其中較重要的部份,要詳細了解各類別關係,及各類別的 method,請查閱 API Documents。NIO 2 同時提供
blocking 和 non-blocking 的模式,blocking 模...
分类:
其他好文 时间:
2014-06-04 16:38:07
阅读次数:
306
httpclient4.3工具类。。。。
package com.ruishenh.utils;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URISyntaxException;
import java.nio.charset.Charset;
imp...
分类:
其他好文 时间:
2014-06-03 03:22:29
阅读次数:
236
阻塞IO实现:
public class PlainEchoServer {
public void serve(int port) throws IOException {
final ServerSocket socket = new ServerSocket(port);
try {
while (true) {
final Socket clientSocket...
分类:
其他好文 时间:
2014-06-02 23:32:20
阅读次数:
357
Reactor模式和NIO
本文可看成是对Doug Lea Scalable IO in Java一文的翻译。
当前分布式计算 Web Services盛行天下,这些网络服务的底层都离不开对socket的操作。他们都有一个共同的结构:
1. Read request
2. Decode request
3. Process service
4. Encode reply
5. S...
分类:
其他好文 时间:
2014-06-02 23:14:47
阅读次数:
356
“zero-file-copy”是仅仅提供给NIO传输方式使用的特性。这个特性允许你以很快并且高效的方式从文件系统之来传输内容。这个特性把本地文件中的字节内容可以不通过从内核空间复制到用户空间的情况下通过网络传输出去。...
分类:
Web程序 时间:
2014-06-02 15:06:34
阅读次数:
365
传统的I/O速度相对比较慢,它会成为系统性能的瓶颈,所以在java1.4之后提供了NIO,它是一种全新的流:它具有以下特性:
1.为所有的原是类型提供Buffer缓存支持;
2.使用java.nio.charset.Charset作为字符编码解码解决方案;
3.增加通道(Channel)对象,作为新的原始I/O抽象;
4.支持锁和内存映射文件的文件访问接口;
5.提供基于S...
分类:
编程语言 时间:
2014-06-02 12:29:02
阅读次数:
294
最后找到了,NioEventLoopGroup,构造这个group的时候传递了一个ThreadFactory参数,所以这个group和Nio学习5——对NIO.2(AIO) Reactor模式封装的拆解中的AsynchronousChannelGroup也是大同小异的!...
分类:
Web程序 时间:
2014-06-02 05:01:53
阅读次数:
412
参考Netty API
io.netty.channel.ChannelPipeline
A list of ChannelHandlers which handles or intercepts inbound events and outbount operations of a
Channel. ChannelPipeline implements an advanced fo...
分类:
Web程序 时间:
2014-06-01 15:44:27
阅读次数:
533
我们通过nio学习了Reactor模式,但是在java7中又出现了NIO.2,新的异步框架出来了,在上节中的服务端视线中看不到Reactor的影子了,但是Netty in action中写到:But notice that NIO.2 handles threading and the creation of the so-called event loop for you.所以模式还是没变,只是封装了而已!那让我们来分解下AIO(NIO.2)的封装吧!...
分类:
其他好文 时间:
2014-06-01 01:40:11
阅读次数:
388
一、Java IO 和 系统 IO 不匹配 在大多数情况下,Java 应用程序并非真的受着
I/O 的束缚。操作系统并非不能快速传送数据,让 Java 有事可做;相反,是 JVM 自身在 I/O 方面效率欠佳。操作系统与 Java 基于流的
I/O模型有些不匹配。操作系统要移动的是大块数据(缓冲区....
分类:
编程语言 时间:
2014-05-31 06:02:09
阅读次数:
312