解决方案 »

  1.   

    NIO思想其实就是过去通讯为了节省信道资源而用的信道复用....让一个线程大包大览的全权处理并分派工作...让SelectableChannel在非阻塞模式工作就是别让某一个工作占用这个线程太多时间...比如下面这样.当发生可读事件时,进行我们的readable()方法,在这个方法内我们从管理内读取数据.
    SocketChannel socketChannel = (SocketChannel) key.channel();
    int len = socketChannel.read(readBuffer);  // 代码1
    如果这里是阻塞模式,代码1这里就非得等所有数据都读到才返回....那这时候其他的事件就要等了..说不定等很久.
    这里是非阻塞模式的放在,立刻就返回了不管读到多少,马上可以去处理其他的事件.可写事件肯定不能没事就注册上,因为这个事件只要是管道有空就会有...会造成CPU假高潮.其实什么事都没做.