美文网首页
深入分析JAVA WEB技术内幕(二)

深入分析JAVA WEB技术内幕(二)

作者: 匆匆小 | 来源:发表于2017-10-02 16:49 被阅读0次

JAVA NIO概述

NIO的工作机制
  1. channel和selector的概念在NIO中尤为突出。channel可比喻为汽车或者高铁,selector则是车站的调度系统,负责控制每个车的运行状态。
public void selector() throws IOException {
        ByteBuffer buffer = ByteBuffer.allocate(1024);
        Selector selector = Selector.open();
        ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();
        serverSocketChannel.configureBlocking(false); // 设置为非阻塞方式
        serverSocketChannel.socket().bind(new InetSocketAddress(8080));
        serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT); // 注册监听事件
        while(true) {
            Set selectKeys = selector.selectedKeys();
            Iterator iterator = selectKeys.iterator();
            while(iterator.hasNext()) {
                SelectionKey selectionKey = (SelectionKey) iterator.next();
                if ((selectionKey.readyOps() & SelectionKey.OP_ACCEPT) == SelectionKey.OP_ACCEPT) {
                    ServerSocketChannel sscChannel = (ServerSocketChannel) selectionKey.channel();
                    SocketChannel sc = sscChannel.accept();
                    sc.configureBlocking(false);
                    sc.register(selector, SelectionKey.OP_READ);
                    iterator.remove();
                } else if ((selectionKey.readyOps() & SelectionKey.OP_READ) == SelectionKey.OP_READ) {
                    SocketChannel sc = (SocketChannel) selectionKey.channel();
                    while(true) {
                        buffer.clear();
                        int i = sc.read(buffer);
                        if (i < 0) {
                            break;
                        }
                        buffer.flip();
                    }
                    iterator.remove();
                }
            }
        }
    }

相关文章

  • Java Web

    ref: 深入分析Java Web技术内幕 总结:Spring事务配置 Ch 1 深入Web请求过程 CDNCon...

  • javac编译原理

    第二章 Javac编译原理 注:本文主要记录自《深入分析java web技术内幕》"第四章 javac编译原理" ...

  • java class文件结构

    (<深入分析Java Web技术内幕>笔记)java语言在宣传时打出的名号就是"一次编译,到处运行", 也就是支持...

  • 深入分析JAVA WEB技术内幕(二)

    JAVA NIO概述 NIO的工作机制 channel和selector的概念在NIO中尤为突出。channel可...

  • 深入分析java web技术内幕

    此书时候闲暇时间阅读,或者寻求技术难题解决方案的时候阅读。 但是直接I/O有负面影响,如果访问的数据不在应用程序缓...

  • JavaWeb笔记之——Web请求过程

    本文总结自《深入分析Java Web技术内幕》一书。全篇内容大致先从一个面试经常问及的问题说起,然后再介绍各个主要...

  • 深入分析JAVA_WEB技术内幕

    第一章 深入WEB请求过程 1.1 B/S网络架构概述 1.2 如何发起一个请求 1.3 HTTP解析 常见的HT...

  • 深入分析JAVA WEB技术内幕(一)

    B/S架构概述 1. B/S架构简化了开发人员的开发成本,前后端依靠HTTP协议进行数据交换,以达到业务目标。 2...

  • 深入分析JAVA WEB技术内幕(三)

    中文编码 用户发起Http请求时,需要存在编码的地方是URL、Cookie、Parameter。服务端接收到Htt...

  • 深入分析java Web技术内幕 - web请求(1)

    如何发起一个htpp请求 简单的说,发起一个HTTP请求的过程就是建立一个Socket通信的过程,且HTTP请求的...

网友评论

      本文标题:深入分析JAVA WEB技术内幕(二)

      本文链接:https://www.haomeiwen.com/subject/nsdtyxtx.html