php socket 同步异步堵塞非堵塞的区别

php socket 同步异步堵塞非堵塞的区别

从accept接受数据开始

 

同步就是  服务端从客户端接受完数据  处理 然后发送给客户端了  然后再开始接收新的客户端发来的数据

异步就是 服务端从客户端接受完数据 就可以再次继续接收   异步处理数据

堵塞就是 服务端堵塞线程状态接收数据 (read)

非堵塞就是 服务端挂起线程接收数据 (不断轮询去接受数据read) 这个期间还能做其他事情

 

讲下epoll 同步非堵塞模式

同步上面说了 一个个来的  非堵塞  就是  如果有数据了就到约定内存区域去读取read  这个期间线程不是堵塞的  所以epoll并不能提高速度 只是增加了并发量 epoll
所以一般都是跟多线程合作 
 
多线程epoll就会引起惊群 因为多个线程抢占资源 就是抢占读取数据   所以解决方法用端口复用  每个端口用1个epoll  这样 1个端口就是1个epoll 单线程
 
以上是我个人理解如果出入请留言
 

 

posted @ 2021-03-13 10:11  newmiracle宇宙  阅读(158)  评论(0编辑  收藏  举报