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

2021-09-26 07:24:59 字數 1420 閱讀 5552

from threading import thread

import time

g_num =

100def

work1()

:global g_num

for i in

range(3

):g_num +=

1print

("----in work1, g_num is %d---"

%g_num)

defwork2()

:global g_num

print

("----in work2, g_num is %d---"

%g_num)

print

("---執行緒建立之前g_num is %d---"

%g_num)

t1 = thread(target=work1)

t1.start(

)#延時一會,保證t1執行緒中的事情做完

time.sleep(1)

t2 = thread(target=work2)

t2.start(

)

執行結果:

---執行緒建立之前g_num is 100---

----in work1, g_num is 103---

----in work2, g_num is 103---

from threading import thread

import time

defwork1

(nums):44

)print

("----in work1---"

,nums)

defwork2

(nums)

:#延時一會,保證t1執行緒中的事情做完

time.sleep(1)

print

("----in work2---"

,nums)

g_nums =[11

,22,33

]t1 = thread(target=work1, args=

(g_nums,))

t1.start(

)t2 = thread(target=work2, args=

(g_nums,))

t2.start(

)

執行結果:

----in work1--- [11, 22, 33, 44]

----in work2--- [11, 22, 33, 44]

1.在乙個程序內的所有執行緒共享全域性變數,能夠在不適用其他方式的前提下完成多執行緒之間的資料共享(這點要比多程序要好)。

2.缺點就是,執行緒是對全域性變數隨意遂改可能造成多執行緒之間對全域性變數的混亂(即執行緒非安全)

python高階 多執行緒

1.1 獲取執行緒數 import threading import time def fun time.sleep 1 print hello t threading.thread target fun t.start print threading.enumerate while true le...

Python高階(多執行緒)

多執行緒結構 import threading def worker 子執行緒要執行的具體邏輯 函式 print threading t1 threading.current thread time.sleep 9 通過休眠模擬子執行緒非同步邏輯 print t1.getname new t thr...

Python高階 多執行緒 05 執行緒

併發 時間段內多個程式輪流執行 並行 同乙個時刻不同cpu同時執行 執行緒 程式執行中,執行 的乙個分支。每個執行至少都有乙個執行緒.執行緒是作業系統排程資源的基礎單位 1.建立 import threading 方法 thread group 執行緒組,目前只能使用none target 執行的目...