【Python高階程式設計015 ● 多工程式設計 ● 解決執行緒之間共享全域性變量出現錯誤的方法:執行緒同步】
阿新 • • 發佈:2020-09-06
---------Python基礎程式設計---------
Author : AI菌
【內容講解】
執行緒之間共享全域性變數資料出現錯誤問題
【程式碼演示】
""" 執行緒之間共享全域性變數資料出現錯誤問題 """ # 定義兩個函式,實現迴圈100萬次,每迴圈一次給全域性變數加1 # 建立兩個子執行緒執行對應的兩個函式,檢視計算後的結果 # 如果計算過程不出錯,兩個子執行緒執行完畢,全域性變數的值應該是100萬 import threading # 定義全域性變數 g_num = 0 # 迴圈1000000次,每迴圈一次給全域性變數加1 def calc_num1(): # 宣告此處加上global表示要修改全域性變數的記憶體地址 global g_num for i in range(1000000): g_num += 1 print("calc_num1:", g_num) # 迴圈1000000次,每迴圈一次給全域性變數加1 def calc_num2(): # 宣告此處加上global表示要修改全域性變數的記憶體地址 global g_num for i in range(1000000): g_num += 1 print("calc_num2:", g_num) if __name__ == '__main__': # 建立第一個子執行緒 first_thread = threading.Thread(target=calc_num1) # 建立第二個子執行緒 second_thread = threading.Thread(target=calc_num2) # 啟動執行緒執行任務 first_thread.start() second_thread.start()
【執行結果】
calc_num1: 1012896
calc_num2: 1147387
【往期精彩】
▷【Python基礎程式設計196 ● 讀取檔案的4種方式】
▷【Python基礎程式設計197 ● 讀取檔案的4種方式】
▷【Python基礎程式設計198 ● 讀取檔案的4種方式】
▷【Python基礎程式設計199 ● Python怎麼讀/寫很大的檔案】
▷【Python基礎程式設計200 ● 讀取檔案的4種方式】
▷【Python基礎程式設計201 ● 讀取檔案的4種方式】
▷【Python基礎程式設計202 ● 讀取檔案的4種方式】
▷【Python基礎程式設計203 ● 讀取檔案的4種方式】
【加群交流】