反应器模式,是使用java io多路复用技术
两大角色:反应器线程;handler处理器
反应器线程:负责响应IO事件,并且分发到handler处理器
handler处理器:执行业务处理逻辑
示例代码可以直接使用
Reactor
public class Reactor implements Runnable{
//选择器
Selector selector;
//io通道
ServerSocketChannel serverSocket;
public Reactor() throws Exception{
//打开选择器
selector = Selector.open();
//获取通道
serverSocket = ServerSocketChannel.open();
InetSocketAddress adress = new InetSocketAddress("127.0.0.1",8081);
serverSocket.socket().bind(adress);
serverSocket.configureBlocking(false);
//注册serverSocket的accept事件
SelectionKey sk = serverSocket.register(selector, SelectionKey.OP_ACCEPT);
//向选择健中增加一个对象
sk.attach(new AcceptorHandler());
}
@Override
public void run() {
//轮询选择器
try {
while(!Thread.interrupted()){
selector.select();
Set selected = selector.selectedKeys();