1. 程式人生 > 實用技巧 >python多執行緒之迴圈,呼叫函式等

python多執行緒之迴圈,呼叫函式等

 1 '''
 2 執行緒中可以迴圈,可以呼叫函式,可以做複雜的事情
 3 '''
 4 # encoding: utf-8
 5 
 6 import threading
 7 import time
 8 
 9 
10 def print_time(thread_name, step):
11     # python的time.ctime()函式把一個時間戳(按秒計算的浮點數)轉化為time.asctime()的形式。
12     # 如果引數未給或者為None的時候,將會預設time.time()為引數。它的作用相當於asctime(localtime(secs))。
13     print
(thread_name, ':', time.ctime(time.time())) 14 time.sleep(step) 15 16 ''' 17 1、如果子類(Puple)繼承父類(Person)不做初始化,那麼會自動繼承父類(Person)屬性name。 18 2、如果子類(Puple_Init)繼承父類(Person)做了初始化,且不呼叫super初始化父類建構函式,那麼子類(Puple_Init)不會自動繼承父類的屬性(name)。 19 3、如果子類(Puple_super)繼承父類(Person)做了初始化,且呼叫了super初始化了父類的建構函式,那麼子類(Puple_Super)也會繼承父類的(name)屬性
20 ''' 21 22 23 class MyThread(threading.Thread): 24 # 子類的建構函式必須先呼叫其父類的建構函式,重寫run()方法。 25 def __init__(self, thid=None, thname=None, step=0.1): 26 threading.Thread.__init__(self) 27 self.step = step 28 self.thid = thid 29 self.thname = thname 30 31 def
run(self): 32 for i in range(3): 33 print_time(self.thname, self.step) 34 time.sleep(self.step) 35 36 print('主執行緒開始!') 37 th1 = MyThread(thname='執行緒1', step=0.2) 38 th2 = MyThread(thname='執行緒2', step=0.3) 39 th3 = MyThread(thname='執行緒3', step=0.5) 40 41 th1.start() 42 th2.start() 43 th3.start() 44 45 th1.join() 46 th2.join() 47 th3.join() 48 print('主執行緒結束!')