网络编程 -- RPC实现原理 -- NIO多线程 -- 迭代版本V1
啦啦啦
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的更多相关文章
- 网络编程 -- RPC实现原理 -- NIO多线程 -- 迭代版本V2
网络编程 -- RPC实现原理 -- 目录 啦啦啦 V2——增加WriteQueue队列,存放selectionKey.addWriteEventToQueue()添加selectionKey并唤醒阻 ...
- 网络编程 -- RPC实现原理 -- NIO单线程
网络编程 -- RPC实现原理 -- 目录 啦啦啦 Class : Service package lime.pri.limeNio.optimize.socket; import java.io.B ...
- 网络编程 -- RPC实现原理 -- 目录
-- 啦啦啦 -- 网络编程 -- RPC实现原理 -- NIO单线程 网络编程 -- RPC实现原理 -- NIO多线程 -- 迭代版本V1 网络编程 -- RPC实现原理 -- NIO多线程 -- ...
- 网络编程 -- RPC实现原理 -- Netty -- 迭代版本V1 -- 入门应用
网络编程 -- RPC实现原理 -- 目录 啦啦啦 V1——Netty入门应用 Class : NIOServerBootStrap package lime.pri.limeNio.netty.ne ...
- 网络编程 -- RPC实现原理 -- Netty -- 迭代版本V2 -- 对象传输
网络编程 -- RPC实现原理 -- 目录 啦啦啦 V2——Netty -- 使用序列化和反序列化在网络上传输对象:需要实现 java.io.Serializable 接口 只能传输( ByteBuf ...
- 网络编程 -- RPC实现原理 -- Netty -- 迭代版本V3 -- 编码解码
网络编程 -- RPC实现原理 -- 目录 啦啦啦 V2——Netty -- pipeline.addLast(io.netty.handler.codec.MessageToMessageCodec ...
- 网络编程 -- RPC实现原理 -- Netty -- 迭代版本V4 -- 粘包拆包
网络编程 -- RPC实现原理 -- 目录 啦啦啦 V2——Netty -- new LengthFieldPrepender(2) : 设置数据包 2 字节的特征码 new LengthFieldB ...
- 网络编程 -- RPC实现原理 -- RPC -- 迭代版本V3 -- 远程方法调用 整合 Spring
网络编程 -- RPC实现原理 -- 目录 啦啦啦 V3——RPC -- 远程方法调用 及 null的传输 + Spring 服务提供商: 1. 配置 rpc03_server.xml 注入 服务提供 ...
- 网络编程 -- RPC实现原理 -- RPC -- 迭代版本V4 -- 远程方法调用 整合 Spring 自动注册
网络编程 -- RPC实现原理 -- 目录 啦啦啦 V4——RPC -- 远程方法调用 + Spring 自动注册 服务提供商: 1. 配置 rpc04_server.xml 注入 服务提供商 rpc ...
随机推荐
- jd-gui的使用方法
java的反编译工具,简单使用: 打开文件.单击“file”从中选择“Open File ...“选项,弹出一个文件选择框,可以选择要打开的文件,或者直接单击文件夹图标,直接弹出文件选择框:从文件选择 ...
- Linux下刷新DNS缓存(Ubuntu/CentOS)
现在很多Linux发行版都没有内置DNS本地缓存,Linux不像Windows那样可以使用ipconfig /flushdns来刷新,在Linux下无需刷新,因为本身没有缓存: 当然,如果非要缓存刷新 ...
- java 集合框架 Java集合&List的实现
原文: https://blog.csdn.net/u012658346/article/details/50917068 一.java集合类图如下所示: 上述类图中,实线边框的是实现类,比如Arra ...
- [leetcode]Permutation Sequence @ Python
原题地址:https://oj.leetcode.com/submissions/detail/5341904/ 题意: The set [1,2,3,…,n] contains a total of ...
- 【T06】记住TCP是一种流协议
1.TCP是一种流协议(stream protocol),这意味着数据是以字节流的形式发给接收者的,没有固定的报文和报文边界的概念. 接收端读取tcp数据,无法预知在这一次读操作中会返回多少个字节. ...
- Mac下打开多个eclipse
命令行执行: open -n /Eclipse所在路径/Eclipse.app
- Spring中通过Annotation来实现AOP
一.Spring配置文件 <!--通过@AspectJ注解的形式来使用Spring AOP,强制使用CGLIB代理--> <aop:aspectj-autoproxy proxy-t ...
- Windows 8系统默认开启的.Net Framework版本是4.0,而部分用户可能需要使用到3.5或以下版本,简单添加方法
从网络途径下载的.Net Framework3.5是无法直接在Windows 8系统上安装的,我们可以通过Windows 8的添加功能来实现 1.打开控制面板,点击”启用或关闭Windows 功能“ ...
- Ubuntu 13.10 录音有特别大噪音解决办法
现在物理机跑Ubuntu,平常的QQ只能在虚拟机里跑了:起初和别人QQ语音,别人能听到很大的噪音,以为是虚拟机的回音,属于正常现象,结果我用虚拟机里边的录音工具和Ubuntu里的录音工具测试一下,发现 ...
- 【Java】Java Queue的简介
阻塞队列 阻塞队列有几个实现: ArrayBlockingQueue LinkedBlockingQueue PriorityBlockingQueue DelayQueue SynchronousQ ...