python多線程之線程傳參


 1 '''
 2 問題:需要傳參怎么辦?
 3 例如,希望給每個線程打印的時候休眠時間不一樣,打印次數不一樣
 4 例如,給每個線程指定一個名稱,或者id
 5 1、重寫構造方法,把傳入的參數作為成員變量
 6 2、別忘了調用父類的構造方法
 7 '''
 8 
 9 # encoding: utf-8
10 
11 import threading
12 import time
13 
14 class MyThread(threading.Thread):
15     # 重寫的__init__會覆蓋父類的__init__,需要在創建子類之前調用父類的構造方法來創建一個父類對象,在父類對象的基礎上再追加一
16     # 些屬性。比如這里的self.step = step
17     # 調用父類的構造方法
18     def __init__(self, step, times):
19         threading.Thread.__init__(self)
20         self.step = step   # 成員變量,可以在不同的類方法之間使用
21         self.times = times
22 
23     def run(self):  # run方法前面的圈圈可以看出是復寫了線程原本的run方法
24         for i in range(self.times):
25             print(self.name)  # 線程的名稱可以直接寫self.name(父類的構造方法中定義好的成員變量),調用主線程的時候會有線程名稱
26             time.sleep(self.step)
27 
28 print('主線程開始啦!')
29 th1 = MyThread(step=0.3, times=8)
30 th2 = MyThread(0.6, times=6)
31 th3 = MyThread(0.2, times=1)
32 
33 th1.start()
34 th2.start()
35 th3.start()
36 
37 th1.join()
38 th2.join()
39 th3.join()
40 print("主線程結束啦!")

 


免責聲明!

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



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