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('主線程結束!')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM