核心思路是,将主线程的IO读写任务拆分出来给一组独立的线程执行,使得多个 socket 的读写可以并行化
主线程负责接收建立连接的请求,获取socket放到全局等待处理队列
主线程处理完读事件之后,通过Round Robin将这些连接分配给IO线程(并不会等待队列满)
主线程阻塞等待IO线程读取socket完毕
主线程通过单线程的方式执行请求命令,请求数据读取并解析完成,但并不执行
主线程阻塞等待IO线程将数据回写socket完毕
解除绑定,清空等待队列
该线程有如下特点:
IO线程要么同时在读socket,要么同时在写,不会同时读或写
IO线程只负责读写socket解析命令,不负责命令处理(主线程串行执行命令)