執行緒(呼叫的兩種方法、全域性變數共享、執行緒數量)
阿新 • • 發佈:2018-11-14
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 2021 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()