Tornado IOLoop

1.IOLoop 是基於 epoll 實現的底層網絡I/O的核心調度模塊,用於處理 socket 相關的連接響應、異步讀寫等網絡事件。每個 Tornado 進程都會初始化一個全局唯一的 IOLoop 實例,在 IOLoop 中通過靜態方法 instance() 進行封裝,獲取 IOLoop 實例直接調用此方法即可。

2.Tornado 服務器啓動時會創建監聽 socket,並將 socket 的 file descriptor 註冊到 IOLoop 實例中,IOLoop 添加對 socket 的IOLoop.READ 事件監聽並傳入回調處理函數。當某個 socket 通過 accept 接受連接請求後調用註冊的回調函數進行讀寫。

3.epoll是Linux內核中實現的一種可擴展的I/O事件通知機制,是對POISX系統中 select 和 poll 的替代,具有更高的性能和擴展性,FreeBSD中類似的實現是kqueue。Tornado中基於Python C擴展實現的的epoll模塊(或kqueue)對epoll(kqueue)的使用進行了封裝,使得IOLoop對象可以通過相應的事件處理機制對I/O進行調度

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章