网络编程 -- RPC实现原理 -- 目录

  啦啦啦

V1——设置标识变量selectionKey.attach(true);只处理一次(会一直循环遍历selectionKeys,占用CPU资源)。

(由于key没有清除,依旧在selectionKeys中存在,遍历时依旧会检测到对应事件,除非socket关闭或调用selectionKey.cancel();清除对应事件)

  Class : Service

package lime.pri.limeNio.optimize.socket2;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.util.Iterator;
import java.util.Set; public class Service { public static void main(String[] args) throws IOException, InterruptedException {
ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();
serverSocketChannel.bind(new InetSocketAddress(9999));
serverSocketChannel.configureBlocking(false);
Selector selector = Selector.open();
serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT);
while (true) {
System.out.println(Thread.currentThread() + " 监听端口@9999,等待客户端连接...");
int n = selector.select();
System.out.println(Thread.currentThread() + " 事件就绪通道个数 : " + n);
Set<SelectionKey> selectedKeys = selector.selectedKeys();
Iterator<SelectionKey> iterator = selectedKeys.iterator();
while (iterator.hasNext()) {
SelectionKey selectionKey = iterator.next();
iterator.remove();
if (selectionKey.isValid() && selectionKey.isAcceptable()) {
System.out.println(Thread.currentThread() + " -- -- -- 处理Acceptable事件");
ServerSocketChannel ssc = (ServerSocketChannel) selectionKey.channel();
SocketChannel sc = ssc.accept();
sc.configureBlocking(false);
sc.register(selector, SelectionKey.OP_READ);
} else if (selectionKey.isValid() && selectionKey.isReadable()) {
if (null == selectionKey.attachment()) {
System.out.println(Thread.currentThread() + " -- -- -- 处理Readable事件");
selectionKey.attach(true);
RequestProcessor.proceess(selectionKey, selector);
}else{
System.out.println(Thread.currentThread() + " -- -- -- IO Readable 处理中...");
}
} else if (selectionKey.isValid() && selectionKey.isWritable()) {
if (null == selectionKey.attachment()) {
System.out.println(Thread.currentThread() + " -- -- -- 处理Writable事件");
selectionKey.attach(true);
ResponseProcessor.proceess(selectionKey, selector);
}else{
System.out.println(Thread.currentThread() + " -- -- -- IO Writable 处理中...");
}
}
}
}
}
}

  Class : RequestProcessor

package lime.pri.limeNio.optimize.socket2;

import java.io.ByteArrayOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.SocketChannel;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; public class RequestProcessor { private static ExecutorService exec = Executors.newFixedThreadPool(5); public static void proceess(final SelectionKey selectionKey, final Selector selector) {
exec.submit(new Runnable() { public void run() {
try {
ByteBuffer byteBuffer = ByteBuffer.allocate(1024);
byteBuffer.clear();
SocketChannel sc = (SocketChannel) selectionKey.channel();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
while(sc.read(byteBuffer) != -1){
bos.write(byteBuffer.array());
byteBuffer.clear();
}
System.out.println(Thread.currentThread() + " 客户端( " + sc.getRemoteAddress() + " ) 请求 : " + bos.toString());
sc.register(selector, SelectionKey.OP_WRITE);
} catch (Exception e) {
}
}
});
} }

  Class : ResponseProcessor

package lime.pri.limeNio.optimize.socket2;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.SocketChannel;
import java.util.Date;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; public class ResponseProcessor { private static ExecutorService exec = Executors.newFixedThreadPool(5); public static void proceess(final SelectionKey selectionKey, final Selector selector) {
exec.submit(new Runnable() { public void run() {
try {
String response = "服务端响应 : " + new Date().toString();
ByteBuffer byteBuffer = ByteBuffer.wrap(response.getBytes());
SocketChannel sc = (SocketChannel) selectionKey.channel();
sc.write(byteBuffer);
sc.close();
} catch (IOException e) {
}
}
});
} }

  Class : Client

package lime.pri.limeNio.optimize.socket2;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel; public class Client { public static void main(String[] args) throws IOException {
for (int i = 0; i < 10; i++) {
new Thread() {
@Override
public void run() {
try {
SocketChannel socketChannel = SocketChannel.open();
socketChannel.connect(new InetSocketAddress("127.0.0.1", 9999)); socketChannel.write(ByteBuffer.wrap("Query Date".getBytes()));
socketChannel.shutdownOutput(); ByteBuffer byteBuffer = ByteBuffer.allocate(1024);
socketChannel.read(byteBuffer);
System.out.println(Thread.currentThread() + " " + new String(byteBuffer.array()));
socketChannel.close();
} catch (IOException e) {
}
} }.start();
}
}
}

  Console : Server

Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 1
Thread[main,5,main] -- -- -- 处理Acceptable事件
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 1
Thread[main,5,main] -- -- -- 处理Acceptable事件
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 1
Thread[main,5,main] -- -- -- 处理Acceptable事件
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 1
Thread[main,5,main] -- -- -- 处理Acceptable事件
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- 处理Readable事件
Thread[main,5,main] -- -- -- 处理Acceptable事件
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 6
Thread[main,5,main] -- -- -- 处理Readable事件
Thread[main,5,main] -- -- -- 处理Readable事件
Thread[pool-1-thread-1,5,main] 客户端( /127.0.0.1:4039 ) 请求 : Query Date
Thread[main,5,main] -- -- -- 处理Readable事件
Thread[pool-1-thread-2,5,main] 客户端( /127.0.0.1:4038 ) 请求 : Query Date
Thread[pool-1-thread-3,5,main] 客户端( /127.0.0.1:4041 ) 请求 : Query Date
Thread[main,5,main] -- -- -- 处理Readable事件
Thread[pool-1-thread-4,5,main] 客户端( /127.0.0.1:4037 ) 请求 : Query Date
Thread[main,5,main] -- -- -- 处理Acceptable事件
Thread[main,5,main] -- -- -- 处理Readable事件
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 7
Thread[main,5,main] -- -- -- 处理Writable事件
Thread[pool-1-thread-5,5,main] 客户端( /127.0.0.1:4039 ) 请求 :
Thread[pool-1-thread-2,5,main] 客户端( /127.0.0.1:4036 ) 请求 : Query Date
Thread[main,5,main] -- -- -- 处理Writable事件
Thread[main,5,main] -- -- -- 处理Readable事件
Thread[main,5,main] -- -- -- 处理Writable事件
Thread[pool-1-thread-3,5,main] 客户端( /127.0.0.1:4042 ) 请求 : Query Date
Thread[main,5,main] -- -- -- 处理Writable事件
Thread[main,5,main] -- -- -- 处理Acceptable事件
Thread[main,5,main] -- -- -- 处理Readable事件
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[pool-1-thread-1,5,main] 客户端( /127.0.0.1:4036 ) 请求 :
Thread[main,5,main] 事件就绪通道个数 : 8
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- 处理Readable事件
Thread[main,5,main] -- -- -- 处理Writable事件
Thread[pool-1-thread-4,5,main] 客户端( /127.0.0.1:4043 ) 请求 : Query Date
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- 处理Acceptable事件
Thread[main,5,main] -- -- -- 处理Writable事件
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 9
Thread[main,5,main] -- -- -- 处理Readable事件
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- 处理Writable事件
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- 处理Acceptable事件
Thread[pool-1-thread-5,5,main] 客户端( /127.0.0.1:4040 ) 请求 : Query Date
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- 处理Writable事件
Thread[main,5,main] -- -- -- 处理Readable事件
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[pool-1-thread-2,5,main] 客户端( /127.0.0.1:4044 ) 请求 : Query Date
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- 处理Acceptable事件
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- 处理Writable事件
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- 处理Readable事件
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[pool-1-thread-3,5,main] 客户端( /127.0.0.1:4045 ) 请求 : Query Date
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- 处理Readable事件
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[pool-1-thread-1,5,main] 客户端( /127.0.0.1:4045 ) 请求 :
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- 处理Writable事件
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 10
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 2
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] -- -- -- IO Writable 处理中...
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 1
Thread[main,5,main] 监听端口@9999,等待客户端连接...
Thread[main,5,main] 事件就绪通道个数 : 1
Thread[main,5,main] 监听端口@9999,等待客户端连接...

  Console : Client

Thread[Thread-7,5,main] 服务端响应 : Sat Jun 24 16:00:41 CST 2017
Thread[Thread-0,5,main] 服务端响应 : Sat Jun 24 16:00:41 CST 2017
Thread[Thread-3,5,main] 服务端响应 : Sat Jun 24 16:00:41 CST 2017
Thread[Thread-9,5,main] 服务端响应 : Sat Jun 24 16:00:41 CST 2017
Thread[Thread-1,5,main] 服务端响应 : Sat Jun 24 16:00:41 CST 2017
Thread[Thread-4,5,main] 服务端响应 : Sat Jun 24 16:00:41 CST 2017
Thread[Thread-6,5,main] 服务端响应 : Sat Jun 24 16:00:41 CST 2017
Thread[Thread-5,5,main] 服务端响应 : Sat Jun 24 16:00:41 CST 2017
Thread[Thread-8,5,main] 服务端响应 : Sat Jun 24 16:00:41 CST 2017
Thread[Thread-2,5,main] 服务端响应 : Sat Jun 24 16:00:41 CST 2017

啦啦啦

网络编程 -- RPC实现原理 -- NIO多线程 -- 迭代版本V1的更多相关文章

  1. 网络编程 -- RPC实现原理 -- NIO多线程 -- 迭代版本V2

    网络编程 -- RPC实现原理 -- 目录 啦啦啦 V2——增加WriteQueue队列,存放selectionKey.addWriteEventToQueue()添加selectionKey并唤醒阻 ...

  2. 网络编程 -- RPC实现原理 -- NIO单线程

    网络编程 -- RPC实现原理 -- 目录 啦啦啦 Class : Service package lime.pri.limeNio.optimize.socket; import java.io.B ...

  3. 网络编程 -- RPC实现原理 -- 目录

    -- 啦啦啦 -- 网络编程 -- RPC实现原理 -- NIO单线程 网络编程 -- RPC实现原理 -- NIO多线程 -- 迭代版本V1 网络编程 -- RPC实现原理 -- NIO多线程 -- ...

  4. 网络编程 -- RPC实现原理 -- Netty -- 迭代版本V1 -- 入门应用

    网络编程 -- RPC实现原理 -- 目录 啦啦啦 V1——Netty入门应用 Class : NIOServerBootStrap package lime.pri.limeNio.netty.ne ...

  5. 网络编程 -- RPC实现原理 -- Netty -- 迭代版本V2 -- 对象传输

    网络编程 -- RPC实现原理 -- 目录 啦啦啦 V2——Netty -- 使用序列化和反序列化在网络上传输对象:需要实现 java.io.Serializable 接口 只能传输( ByteBuf ...

  6. 网络编程 -- RPC实现原理 -- Netty -- 迭代版本V3 -- 编码解码

    网络编程 -- RPC实现原理 -- 目录 啦啦啦 V2——Netty -- pipeline.addLast(io.netty.handler.codec.MessageToMessageCodec ...

  7. 网络编程 -- RPC实现原理 -- Netty -- 迭代版本V4 -- 粘包拆包

    网络编程 -- RPC实现原理 -- 目录 啦啦啦 V2——Netty -- new LengthFieldPrepender(2) : 设置数据包 2 字节的特征码 new LengthFieldB ...

  8. 网络编程 -- RPC实现原理 -- RPC -- 迭代版本V3 -- 远程方法调用 整合 Spring

    网络编程 -- RPC实现原理 -- 目录 啦啦啦 V3——RPC -- 远程方法调用 及 null的传输 + Spring 服务提供商: 1. 配置 rpc03_server.xml 注入 服务提供 ...

  9. 网络编程 -- RPC实现原理 -- RPC -- 迭代版本V4 -- 远程方法调用 整合 Spring 自动注册

    网络编程 -- RPC实现原理 -- 目录 啦啦啦 V4——RPC -- 远程方法调用 + Spring 自动注册 服务提供商: 1. 配置 rpc04_server.xml 注入 服务提供商 rpc ...

随机推荐

  1. 使用Date和SimpleDateFormat类表示时间

    Date类: 使用 Date 类的默认无参构造方法创建出的对象就代表当前时间,我们可以直接输出 Date 对象显示当前的时间,显示的结果如下: Date d = new Date(); System. ...

  2. Javascript:自己写模板引擎

    背景 因为JS没有提供“字符串插入”和“多行字符串”特性,传统的拼凑字符串容易出错.性能不高和不容易理解代码,为了应对这些问题,很多个人和团队开发了模板引擎,现在主流的JS框架几乎都提供此类功能了. ...

  3. FXAA,FSAA与MSAA有什么区别?效果和性能上哪个好

    而MSAA基本上只对画面中物体的边缘进行放大.混合的抗锯操作,因为边缘是锯齿最明显的地方(注意不是所有的边缘).提取边缘,主要是结合深度技术.MSAA是种硬件AA.我们一般说的4x.8x,就是放大倍数 ...

  4. Java调用使用SSL/HTTPS协议来传输的axis webservice服务

    使用SSL/HTTPS协议来传输 Web服务也可以使用SSL作为传输协议.虽然JAX-RPC并没有强制规定是否使用SSL协议,但在tomcat 下使用HTTPS协议. 1.使用JDK自带的工具创建密匙 ...

  5. JAVA递归、非递归遍历二叉树(转)

    原文链接: JAVA递归.非递归遍历二叉树 import java.util.Stack; import java.util.HashMap; public class BinTree { priva ...

  6. OS面试题(转载)

    转载自:http://placement.freshersworld.com/power-preparation/technical-interview-preparation/os-intervie ...

  7. Spring MVC 中使用 Google kaptcha 验证码

    验证码是抵抗批量操作和恶意登录最有效的方式之一. 验证码从产生到现在已经衍生出了很多分支.方式.google kaptcha 是一个非常实用的验证码生成类库. 通过灵活的配置生成各种样式的验证码,并将 ...

  8. android中Textview 和图片同时显示时,文字省略号显示,图片自动靠到右边

    很纠结的一个标题,实在是不知道怎么去描述这个现象. 上图片吧,先看看需求是什么样的. 1.需求: ​ 视频与票的图标跟在标题后面显示,当标题过长时icon显示到省略号…后(textview省略号显示, ...

  9. (原)IOU的计算

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/9043395.html 参考网址: https://github.com/deepinsight/ins ...

  10. MySQL 四种事务隔离级的说明[转]

    很早之前写的文章,重新回顾和学习下: 按照SQL:1992 事务隔离级别,InnoDB默认是可重复读的(REPEATABLE READ).MySQL/InnoDB 提供SQL标准所描述的所有四个事务隔 ...