IO多路复用及异步非阻塞

IO多路复用

传统方法,使用多进程并发模型,每进来一个新的i/o流都会单独去分配一个新的进程去管理(开辟出无限个进程,增加系统负担,导致崩溃死机)
后来使用i/o多路复用(利用单个线程,通过记录和跟踪每个i/o流状态,来同时管理多个i/o连接)
select , poll ,epoll 都是i/o多路复用的具体实现.

异步非阻塞

  • 同步
    • 从上到下,一次执行
  • 异步
    • 无需等待当前程序执行完毕,就开始执行下一个程序
  • 阻塞
    • 程序遇到sleep、input、listen、recv、...,会阻塞
  • 非阻塞
    • 程序没有需要等待交互的代码,直接执行
  • 异步非阻塞
    • 场景发生在多进程/多线程之间
    • 没有任何io等待,同时执行任务
    • 设置setblocking(False) (设置非阻塞
      了解)
posted @ 2020-08-13 17:46  左晓龙  阅读(72)  评论(0编辑  收藏  举报