我用浏览器请求,一直是给第一个进程处理,哪怕这个进程阻塞着 postman一直是第二个进程 有设置调度的吗?把新的请求交给空闲进程?
因为浏览器(包括postman)会做优化啊,浏览器新的请求复用之前建立的http连接。目的是避免频繁的tcp连接建立和断开,大大提升浏览器和服务端性能 如果满足下面情况就会复用连接发起新的请求, 1、连接没有被关闭 2、连接上没有等待响应的请求,也就是上一个请求已经收到回复 浏览器是不知道你的进程发生了阻塞的,既然这个连接正常返回了数据,它认为连接对应的进程没问题,那么下次他还会复用这个连接发起请求。 服务端无法把请求分配给其它进程是因为根据操作系统的底层原理,客户端发起的连接不是进程间共享的,连接属于哪个进程那么就只能那个进程处理。如果处理连接的进程被你sleep阻塞了,那它自然暂时无法处理这个连接后续的请求啦,其它进程帮不上忙的。 我觉得如果不想他们复用连接,可以send完数据后调用close关闭连接
因为浏览器(包括postman)会做优化啊,浏览器新的请求复用之前建立的http连接。目的是避免频繁的tcp连接建立和断开,大大提升浏览器和服务端性能
如果满足下面情况就会复用连接发起新的请求,
1、连接没有被关闭
2、连接上没有等待响应的请求,也就是上一个请求已经收到回复
浏览器是不知道你的进程发生了阻塞的,既然这个连接正常返回了数据,它认为连接对应的进程没问题,那么下次他还会复用这个连接发起请求。
服务端无法把请求分配给其它进程是因为根据操作系统的底层原理,客户端发起的连接不是进程间共享的,连接属于哪个进程那么就只能那个进程处理。如果处理连接的进程被你sleep阻塞了,那它自然暂时无法处理这个连接后续的请求啦,其它进程帮不上忙的。
我觉得如果不想他们复用连接,可以send完数据后调用close关闭连接