使用threading.Thread類,有三種創建線程的方法:
創建一個Thread類,傳給它一個函數;
創建一個Thread類,傳給它一個可調用的類對象;
從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()
加鎖的操作這裏不做敘述。