本文所剖析的tornado源碼版本為4.4.2

ioloop是tornado的關(guān)鍵,是他的最底層。

ioloop就是對I/O多路復(fù)用的封裝,它實現(xiàn)了一個單例,將這個單例保存在IOLoop._instance中

ioloop實現(xiàn)了Reactor模型,將所有要處理的I/O事件注冊到一個中心I/O多路復(fù)用器上,同時主線程/進程阻塞在多路復(fù)用器上;一旦有I/O事件到來或是準(zhǔn)備就緒(文件描述符或socket可讀、寫),多路復(fù)用器返回并將事先注冊的相應(yīng)I/O事件分發(fā)到對應(yīng)的處理器中。

另外,ioloop還被用來集中運行回調(diào)函數(shù)以及集中處理定時任務(wù)。

一 準(zhǔn)備知識:

  1 首先我們要了解Reactor模型

  2 其次,我們要了解I/O多路復(fù)用,由于本文假設(shè)系統(tǒng)為Linux,所以要了解epoll以及Python中的select模塊

  3 IOLoop類是Configurable類的子類,而Configurable類是一個工廠類,講解在這。

二  創(chuàng)建IOLoop實例

來看IOLoop,它的父類是Configurable類,也就是說:IOLoop是一個直屬配置子類

class IOLoop(Configurable):
    ......

這里就要結(jié)合Configurable類進行講解:

移動開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機開發(fā)培訓(xùn),手機維修培訓(xùn),手機軟件培訓(xùn) 

網(wǎng)友評論