twisted學習筆記之 綜述和reactor概述

2021-04-26 01:39:30 字數 2253 閱讀 8436

reactor

platform

usage

iocpreactor

win32

from twisted.internet import iocpreactor     iocpreactor.reactor.install()

from twisted.internet import reactor

selectreactor

win32, posix

from twisted.internet import reactor

pollreactor

posix

from twisted.internet import pollreactor

pollreactor.install()

from twisted.internet import reactor

epollreactor

linux2.6

from twisted.internet import epollreactor

epollreactor.install()

from twisted.internet import reactor

kqueuereactor

bsd系列

from twisted.internet import kqreactor

kqreactor.install()

from twisted.internet import reactor

以上幾種就是使用最多的幾種reactor了,除了kqueuereactor我沒有使用過以外,其他的都使用過了。都能正常工作。建議程式設計序的時候實現根據不同的平台選擇最佳的reactor。

系統預設使用的是selectreactor。

下面給出乙個小例子:

from twisted.internet.protocol import protocol, factory

from twisted.internet import reactor

### protocol implementation

# this is just about the ******st possible protocol

class echo(protocol):

def datareceived(self, data):

"""as soon as any data is received, write it back."""

self.transport.write(data)

def main():

f = factory()

f.protocol = echo

reactor.listentcp(8000, f)

reactor.run()

if __name__ == '__main__':

main()

這個是呼叫預設的selectreactor.

下面我把它改為epollreactor

from twisted.internet.protocol import protocol, factory

### protocol implementation

# this is just about the ******st possible protocol

class echo(protocol):

def datareceived(self, data):

"""as soon as any data is received, write it back."""

self.transport.write(data)

def main():

f = factory()

f.protocol = echo

from twisted.internet import epollreactor

epollreactor.install()

from twisted.internet import reactor

reactor.listentcp(8000, f)

reactor.run()

if __name__ == '__main__':

main()

這樣程式使用的就是epollreactor了,有人說,我怎麼知道它到底使用的是什麼reactor呢?

只需要在你的程式中新增下面兩行就可以知道了:

import sys

print sys.modules['twisted.internet.reactor']

彙編學習筆記之暫存器綜述

暫存器是cpu的組成部分。因為在cpu內部,所以cpu對其讀寫速度是最快的,不需要io傳輸,但同時也決定了此類暫存器數量有限,有限到幾乎每個暫存器都有自己的名字,而且有些還有多個名字。ia 32構架提供了16個基本暫存器,這16個基本暫存器可以歸納為如下幾類 通用暫存器 段暫存器 狀態和控制暫存器 ...

學習筆記 自動文摘技術綜述

文摘的基本過程分為三個步驟 1.文字輸入 2.計算 3.文摘輸出 文摘的分類 從輸入的角度來看,基本的可以分為單文件文摘和多文件文摘。區別在於輸入的是一篇文章還是一坨文章。此外,如果生成的結果在資訊內容型別上相對固定,即可以用模版來生成結果,如 最後生成的是固定格式的個人簡歷,那麼自動文摘任務轉化成...

Python3爬蟲學習筆記0 0 綜述

歡迎捧場,博主前一段時間零零碎碎地學習了一些python爬蟲的知識,現在把一些學習內容整理出來,水平有限,難免出現錯誤,希望大家能夠批評指正,謝謝。該系列部落格的內容參照 崔慶才 靜覓的部落格內容完成,謝謝授權。python 版本 3.5 預備知識 python基礎,http協議,正規表示式,url...