[英]Python twisted Reactor class
裝飾者的意義是什么
@reactor.callWhenRunning,
@results_deferred.addCallback
@results_deferred.addErrback.
還有什么是延遲字符串,例如在
twisted.internet.utils.getProcessOutput()
返回一個延遲的字符串,這里到底發生了什么?
我是新手,所以這可能是一個非常簡單的問題,但是閱讀扭曲的文檔並沒有太大幫助
在正常的編程實踐中,您會
db = Database.connect()
result = db.getResult()
processResult(result)
現在,取決於您的數據庫和網絡,這3條語句可能花費一毫秒到幾秒鍾的時間。
數十年來,我們所有人都一直在以這種方式進行編程,在大多數情況下,我們對“等待”表示滿意。
但是有時候您的程序不能只等待結果。 您會開始思考,在我等待結果的同時,我還可以做很多其他事情。 也許打印輸出,或處理功能,或只是快速檢查插座等。
輸入扭曲和延遲。
不必等待result
,在Twisted中調用特殊方法時,您將獲得Deferred
。 您將為此延遲添加一個回調函數,這意味着在獲得結果/答案時調用此函數。
deferredResult = db.nonBlockingGetResult()
deferredResult.addCallback(processOutput)
一旦執行第一條語句,它將返回“某物”。 而且那是Deferred
事情。 那里沒有障礙,沒有等待。 並向此Deferred
添加回調processOutput
,當deferred被“激發”時即被調用,即result
准備就緒。
高溫超導
我不確定python,但這看起來像Active object模式和Futures。 在下一個c ++版本中,期貨將成為標准。 如果您通讀Active對象和Futures,您將了解
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.