php socket 同步异步堵塞非堵塞的区别
从accept接受数据开始
同步就是 服务端从客户端接受完数据 处理 然后发送给客户端了 然后再开始接收新的客户端发来的数据
异步就是 服务端从客户端接受完数据 就可以再次继续接收 异步处理数据
堵塞就是 服务端堵塞线程状态接收数据 (read)
非堵塞就是 服务端挂起线程接收数据 (不断轮询去接受数据read) 这个期间还能做其他事情
讲下epoll 同步非堵塞模式
同步上面说了 一个个来的 非堵塞 就是 如果有数据了就到约定内存区域去读取read 这个期间线程不是堵塞的 所以epoll并不能提高速度 只是增加了并发量 epoll 所以一般都是跟多线程合作 多线程epoll就会引起惊群 因为多个线程抢占资源 就是抢占读取数据 所以解决方法用端口复用 每个端口用1个epoll 这样 1个端口就是1个epoll 单线程 以上是我个人理解如果出入请留言原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/18973.html