星期三, 8月 20, 2008

[Python]Threading

http://www.devshed.com/c/a/Python/Basic-Threading-in-Python/
http://www.hacker.com.cn/article/view_14446.html
http://code.activestate.com/recipes/302746/
http://www.davidnaylor.co.uk/threaded-data-collection-with-python-including-examples.html

以上是我找到的Python關於Threading的文章,對於我在寫Python multi-thread上面還蠻有參考價值的,其實非常的簡單,只要寫好Thread Object,然後帶一個Queue的物件,然後把你要傳的東西put,任何東西都可以,然後Thread Object就會get,就可以做到multi-thread,個人認為Python的官方網站,基本上只是reference,沒有教學的範例,除非有寫過的人才有用,不然根本看不懂怎麼寫。

貼一下程式碼好了
import threading, Queue
    class ClientThread(threading.Thread):
        def run(self):
            while True:
            item=Pool.get()#這裡可以接任何東西
            if item != None:
                #do your work
                Pool.task_done()#告訴Queue工作完成
Pool = Queue.Queue(0)
for x in range(num_of_threads):
    ClientThread.start()#要開幾個threads
while (xxx):#條件式自己設定
    Pool.put(xxx)#Put item進去
Pool.join()#等到所有的job都做完

沒有留言:

張貼留言