import threading
from time import sleep
s=none
#臨界資源
defbar
(): print("呼叫foo")
global s
s='天王'
deffoo
(): print('foo等口令')
sleep(2)
print('foo收到%s'%s)
deffun
():#執行緒bar1被這個fun覆蓋掉了,執行緒之間有同步和互斥
sleep(1)
print('內奸出現')
global s
s='小雞'
t1=threading.thread(name='bar',target=bar)
t2=threading.thread(name="foo",target=foo)
t3=threading.thread(name="foo",target=foo)
t1.start()
t2.start()
t3.start()
t1.join()
t2.join()
t3.join()
執行緒鎖 :
lock=threading.lock() #建立鎖物件
lock.acquire() #上鎖
lock.release() #解鎖
多執行緒共享全域性變數(執行緒間通訊)
修改全域性變數一定需要加global嗎?num 100lis 11 22 def demo global num num 100def demo1 33 未修改指向 只是修改了指向空間的資料 不用加global defdemo2 global lis lis lis 44 修改了指向 要加上glob...
7 多執行緒 全域性變數 共享全域性變數
多執行緒 全域性變數 共享全域性變數 多執行緒可以對全域性變數進行修改,修改後的結果會影響下乙個執行緒 程序不可以共享全域性變數,子程序是複製父程序的全域性變數,修改後互不影響 from threading import thread import time,random g num 100 def...
執行緒的全域性變數
from threading import thread import time g num 100 defwork1 global g num for i in range 3 g num 1 print in work1,g num is d g num defwork2 global g nu...