1、概述python
多路複用屬於同步I/O模型,主旨是同時監聽多個FD,一旦有事件發生,發送至相應的處理器處理以提升性能。nginx
舉個例子,一個聊天程序,阻塞型的一個服務器只能跟一個客戶端通訊,要跟另外一個通訊就須要斷開這個;web
多路複用讓服務器能夠監聽多個socket描述符,當一個客戶端沒有數據傳來時,服務器能夠轉而服務其餘有數據的客戶端。redis
2、經常使用應用場景apache
客戶端要處理多個socket服務器
客戶端同時處理鏈接和用戶輸入,好比聊天室網絡
TCP服務器要同時處理監聽socket和鏈接socket框架
服務器同時處理TCP和UDPsocket
服務器要監聽多個端口tornado
3、舉例
I/O框架libevent
基於libevent和協程的python網絡框架gevent
python的高性能web框架tornado
redis文件事件處理器
nginx,apache事件模型