reactor模式前序:传统IO的WEB服务器设计

时间:2023-03-09 15:58:43
reactor模式前序:传统IO的WEB服务器设计

先看一段经典的WEB JAVA服务器设计

reactor模式前序:传统IO的WEB服务器设计

JAVA代码为(伪代码)

 1 ServerSocket serverSocket = ...;
2 serverSocket.bind(8899);
3
4 while (true) {
5 final Socket socket = serverSocket.accept(); // 阻塞
6
7 new Thread(new Runnable() {
8 public void run() {
9 socket.getInputStream();
10 xxxxx
11 }
12 }).start();
13
14 }
 

可以看到,传统IO编程方式,来一个请求链接,就创建一个线程,非常简单粗暴,缺点也是显而易见的

1.一台计算机的线程数是不可能无限制地增加的,到了一定程度,将会到达瓶颈

2.线程与线程之间的上下文切换是需要时间的