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

2022-03-16 23:33:03 字數 813 閱讀 5813

#

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

#多執行緒可以對全域性變數進行修改,修改後的結果會影響下乙個執行緒

#程序不可以共享全域性變數,子程序是複製父程序的全域性變數,修改後互不影響

from threading import

thread

import

time,random

g_num = 100

defwork1():

global

g_num

for i in range(3):

g_num += 1time.sleep(random.random())

print("

in work1,g_num=%d

"%g_num)

defwork2():

global

g_num

for i in range(3):

g_num += 1time.sleep(random.random())

print("

in work2,g_num=%d

"%g_num)

if__name__ == "

__main__":

#work1()

#work2()

#print("主線程g_num%d"%g_num)

t1 = thread(target=work1)

t2 = thread(target=work2)

t1.start()

t2.start()

#print("主線程g_num%d" % g_num)

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

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

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

多執行緒 共享全域性變數問題 多執行緒開發可能遇到的問題 假設兩個執行緒t1和t2都要對全域性變數g num 預設是0 進行加1運算,t1和t2都各對g num加10次,g num的最終的結果應該為20。但是由於是多執行緒同時操作,有可能出現下面情況 在g num 0時,t1取得g num 0。此時...

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

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 def work2 global g ...