多執行緒共享變數

2021-09-26 16:36:34 字數 736 閱讀 9874

from threading import thread, lock

global_num = 0

def func1():

global global_num #全域性變數

for i in range(1000000):

lock.acquire() # 兩個執行緒會最開始搶這個鎖,拿到鎖就會處於關鎖,執行後面的程式,其他執行緒執行處於監聽狀態,等待這個執行緒開鎖,再搶鎖

global_num += 1

lock.release()

print('---------func1:global_num=%s--------' % global_num)

def func2():

global global_num

for i in range(1000000):

lock.acquire()

global_num += 1

lock.release()

print('--------fun2:global_num=%s' % global_num)

print('global_num=%s' % global_num)

lock = lock()#定義執行緒鎖

t1 = thread(target=func1)

t1.start()

t2 = thread(target=func2)

t2.start()

多執行緒共享變數 多執行緒共享全域性變數

1.多執行緒的執行順序是無序的 像2個人賽跑,乙個先跑乙個後跑,但根據每個人跑的速度不一樣,跑一半,二者可能跑在一起去了。2.又因為多執行緒是共享乙個全域性變數的,就導致資料容易被弄髒 假如老闆讓兩個員工寫兩個主題ppt,若這兩個人沒商量好,都做了同乙個主題的ppt,導致不但速度很慢,且這個ppt有...

多執行緒共享變數

題目如下 設計4個執行緒,其中兩個執行緒每次對j增加1,另外兩個執行緒對j每次減少1。如果每個執行緒執行的 相同 可以使用同乙個runnable物件,這樣在不同的執行緒中只需要把這個runnable物件傳到裡面去即可,因為runnable物件的run方法天熱原子性,不可能run方法被打斷,乙個run...

Python 多執行緒 共享變數

僅用學習參考 coding utf 8 from threading import thread import time g num 100 def work1 global g num for i in range 3 g num 1 print in work1,g num is d g num...