网络编程 -- 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. CocosCreator原生平台退出游戏,暂停和继续

    原生平台退出游戏,方法为:cc.director.end();官方解释:End the life of director in the next frame暂停游戏,方法: cc.director.p ...

  2. 关于Mysql安装启动的若干问题解决

    Mysql由于其免费,高效的特点一直是大学,培训班的主力数据库管理软件.但是对于初学者而言可能没有那么友好,一是没有windows软件通用的那套可视化操作,基本上初期在不搭配navicat的状态下只能 ...

  3. 系统wmiprvse.exe占用CPU非常高,求解决

    1.wmiprvse.exe是微软Windows操作系统的一部分.用于通过WinMgmt.exe程序处理WMI操作.文件位置有二处: C:\WINDOWS\system32\wbem\wmiprvse ...

  4. selenium之关于 chromedriver的安装和使用

    转自:https://blog.csdn.net/d77808675/article/details/79016271 最近在学习爬虫,用到了selenium 环境:Windows,python3 但 ...

  5. Knockout.Js官网学习(加载或保存JSON数据)

    前言 Knockout可以实现很复杂的客户端交互,但是几乎所有的web应用程序都要和服务器端交换数据(至少为了本地存储需要序列化数据),交换数据最方便的就是使用JSON格式 – 大多数的Ajax应用程 ...

  6. 你的项目真的需要Session吗? redis保存session性能怎么样?

    在web开发中,Session这个东西一直都很重要,至少伴随我10年之久, 前一段时间发生一个性能问题,因为Redis session 问题,后来想想 其实我的项目session 是不需要的. 先看看 ...

  7. [数据结构与算法分析(Mark Allen Weiss)]不相交集 @ Python

    最简单的不相交集的实现,来自MAW的<数据结构与算法分析>. 代码: class DisjSet: def __init__(self, NumSets): self.S = [0 for ...

  8. CoffeeScript简介 <一>

    介绍 coffeeScript是一种轻量级的编程语言,可以用编译器生成原生javascript代码.它简化了许多javascript繁琐的方式,可以让你用简单的方式直接使用一行程序代表javascri ...

  9. 阿里云Logtail 快速诊断工具

    当日志采集发生异常时,您可以通过Logtail自助检测工具查看客户端是否存在异常情况,根据工具提示快速定位并解决问题.   说明 本工具目前仅支持Linux系统的服务器. 准备工作 下载检测工具脚本. ...

  10. tmux的复制粘贴

    tmux有面板的概念,这导致普通终端下的ctrl+shift+C的模式复制出来的文本会串行.如果面板只有一列当然没有问题,但当面板有多列时,复制就会出问题.于是tmux提出了类似vim的复制模式.因此 ...