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

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

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

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

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

一 準(zhǔn)備知識(shí):

  1 首先我們要了解Reactor模型

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

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

二  創(chuàng)建IOLoop實(shí)例

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

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

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

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

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式