Python多線程之threading模塊

使用threading.Thread類,有三種創建線程的方法:

  1. 創建一個Thread類,傳給它一個函數;

  2. 創建一個Thread類,傳給它一個可調用的類對象;

  3. 從Thread派生出一個類,創建一個這個子類的實例。




# 方法1和方法2的創建方法類似
import threading

def func(k):
    print('thread %s replies %s'%(threading.currentThread().getName(), k**2))

if __name__ == '__main__':
    mythreads = []
    for i in range(1,5):
        t = threading.Thread(target=func, args=(i,))
        mythreads.append(t)

    print('start:')
    for t in mythreads:
        t.start()    #所以線程創建完後一起start,而不要創建一個啓用一個
    for t in mythreads:
        t.join()    #等待所有線程運行完畢在繼續執行主程序
# 方法3的創建方式
import threading

class Myclass(threading.Thread):
    def run(self):
        print('i am thread: %s' %(self.getName()))

if __name__ == '__main__':
    mythreads = []
    for i in range(1,5):
        t = Myclass()
        mythreads.append(t)

    print('start:')
    for t in mythreads:
        t.start()
    for t in mythreads:
        t.join()

加鎖的操作這裏不做敘述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章