依賴的包:
from pubsub import pub
from threading import thread
核心**:
class scrapethread(thread):
def __init__(self, event):
# 執行緒例項化時立即啟動
# thread.__init__(self)
super(scrapethread, self).__init__()
self.event = event
self.setdaemon(true)
def run(self):
# 執行緒執行的**
pub.sendmessage("do_something", msg=self.event)
呼叫部分:def do_something(self, msg):
。。。。
。。。。
。。。。
呼叫之前別忘了 :pub.subscribe(self.do_something, "do_something")
def ready_go(self, event):
# event.geteventobject().disable()
scrapethread(event).start()
執行ready_go方法就可以了!
其實對於本地窗體級應用開發很多時候都會用到非同步,因為從執行緒不能改動主線程申請的資源,所以必須用到訊息幫浦機制:
在c#中有begininvoke機制,在android開發中有handler,loop機制。和python中的pubsub其實是乙個原理。
python實現自己的非同步IO等非同步操作
首先引用下廖雪峰老師 上的這部分介紹 協程,又稱微執行緒,纖程。英文名coroutine。協程的概念很早就提出來了,但直到最近幾年才在某些語言 如lua 中得到廣泛應用。子程式,或者稱為函式,在所有語言中都是層級呼叫,比如a呼叫b,b在執行過程中又呼叫了c,c執行完畢返回,b執行完畢返回,最後是a執...
8 非同步操作
對於遊戲開發而言,經常使用到非同步相關操作,因此在使用moduleframework之前應該提供乙個非同步操作的類。以後相關的非同步操作均繼承這個類 asyncoperation 先貼出 ifndef async operation h define async operation h includ...
android非同步操作
1 要實現非同步操作就要用到android提供乙個asynctask類,這個類是乙個泛型。下面附上我的 我直接在 中說明 package com.example.async2 import android.os.asynctask import android.view.view import an...