Python多線程-2(線程共享全局變量)


 

 

例子:

from threading import Thread,Lock from time import sleep, ctime global_num = [] def func1(): global global_num for i in range(5): sleep(1)  #假設是最耗時的主過程
        lock.acquire()#兩個線程會最開始搶這個鎖,拿到鎖就會處於關鎖,執行后面的程序,其他線程執行處於監聽狀態,等待這個線程開鎖,再搶鎖
        global_num.append(1) print('-----%s---func1----:global_num=%s--------\n'%(ctime(),global_num)) lock.release() def func2(): global global_num for i in range(3): sleep(1) lock.acquire() global_num.append(2) print('-----%s---func2-----:global_num=%s========\n'%(ctime(),global_num)) lock.release() print('global_num=',global_num) lock = Lock() t1 = Thread(target=func1) t1.start() t2 = Thread(target=func2) t2.start() t1.join() t2.join() print('global_num=%s\n'%global_num)

  python進階之多線程對同一個全局變量的處理


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM