IO多路复用
2021-04-02 13:32:16   0  举报             
     
         
 IO多路复用
    作者其他创作
 大纲/内容
 select虽然可以监控多个fd了,但select其实现的本质上还是通过不断的轮询fd来监控数据状态, 因为大部分轮询请求其实都是无效的
  线程1
    应用程序
  如果需要同时进行多个IO操作就需要开多个线程并且每个线程都需要调用recvfrom去请求读取
  EWOULDBLOCK/成功
  网络IO
  receiver线程
  这样的弊端很明显,如果存在高并发场景,每来一个请求就创建一个线程会浪费大量的资源所以引入了多路复用,专门开启一个线程去进行遍历并轮询缓冲区,查看数据是否已经准备好
  轮询
  不断发送recvfrom请求获取数据
  recvfrom请求接收数据
  线程3
  线程2
  询问线程
  TCP接收缓冲区
  有可读事件则分配给recever线程
  select
  线程4
  阻塞调用
   
 
 
 
 
  0 条评论
 下一页
  
   
   
   
   
  
  
  
  
  
  
  
  
 