1. 程式人生 > >執行緒(呼叫的兩種方法、全域性變數共享、執行緒數量)

執行緒(呼叫的兩種方法、全域性變數共享、執行緒數量)

 1 # -*- coding:utf-8 -*-
 2 # Author:Sure Feng
 3 
 4 
 5 import threading
 6 import time
 7 
 8 
 9 num = 0
10 
11 
12 def sing():
13     # 執行緒間共享全域性變數,可能導致資料混亂
14     global num
15     for i in range(5000):
16         num += 1
17         print("--第【%d】次sing----" % num)
18         # time.sleep(0.1)
19 
20
21 class Dance(threading.Thread): 22 def run(self): 23 global num 24 for i in range(5000): 25 num += 1 26 print("---第【%d】次dance---" % num) 27 # time.sleep(0.1) 28 29 30 def main(): 31 # 呼叫執行緒的第一種方法 32 t1 = threading.Thread(target=sing) 33
# 呼叫執行緒的第二種方法 34 t2 = Dance() 35 t1.start() 36 t2.start() 37 38 while True: 39 # 檢視當前執行緒數量 40 threading_num = len(threading._enumerate()) 41 print("當前的執行緒數量為%d" % threading_num) 42 if threading_num <= 1: 43 break 44 45 # time.sleep(0.3)
46 47 if __name__ == "__main__": 48 main()