亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Python threading.local代碼實例及原理解析

瀏覽:13日期:2022-08-02 10:27:00

Python的線程操作在舊版本中使用的是thread模塊,在Python27和Python3中引入了threading模塊,同時thread模塊在Python3中改名為_thread模塊,threading模塊相較于thread模塊,對于線程的操作更加的豐富,而且threading模塊本身也是相當于對thread模塊的進一步封裝而成,thread模塊有的功能threading模塊也都有,所以涉及到對線程的操作,推薦使用threading模塊。

threading模塊中包含了關于線程操作的豐富功能,包括:常用線程函數,線程對象,鎖對象,遞歸鎖對象,事件對象,條件變量對象,信號量對象,定時器對象,柵欄對象。代碼如下

#coding = utf - 8import threading# 創建全局ThreadLocal對象:localVal = threading.local()localVal.val = 'Main-Thread'def process_student():print ’%s (in %s)’ % (localVal.val,threading.current_thread().name)def process_thread(name): #賦值localVal.val = nameprocess_student()t1 = threading.Thread(target =process_thread, args = (’One’, ),name = ’Thread-A’)t2 = threading.Thread(target =process_thread, args = (’Two’, ),name = ’Thread-B’)t1.start()t2.start()t1.join()t2.join()print localVal.val

打印結果:

One (in Thread-A)Two (in Thread-B)Main-Thread

threading.local()這個方法的特點用來保存一個全局變量,但是這個全局變量只有在當前線程才能訪問,

localVal.val = name這條語句可以儲存一個變量到當前線程,如果在另外一個線程里面再次對localVal.val進行賦值,

那么會在另外一個線程單獨創建內存空間來存儲,也就是說在不同的線程里面賦值 不會覆蓋之前的值,因為每個

線程里面都有一個單獨的空間來保存這個數據,而且這個數據是隔離的,其他線程無法訪問

這個東西可以用在那些地方呢,比如下載,現在都是多線程下載了,就像酷狗那樣,可以同時下載很多首歌曲,那么

就可以利用這個方法來保存每個下載線程的數據,比如下載進度,下載速度之類的

所以 如果你在開發多線程應用的時候 需要每個線程保存一個單獨的數據供當前線程操作,可以考慮使用這個方法,簡單有效

其實這樣的功能還有很多種方法可以實現,比如我們在主線程實例化一個dict對象,然后用線程的名字作為key,因為線程之間可以共享數據,

所以也可以實現相同功能,并且靈活性更多,不過代碼就沒那么優雅簡潔了

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 亚洲欧美日韩在线中文一 | 亚洲 自拍 欧美 另类小说 | 在线婷婷 | 99热这里只有精品88 | 国产无套在线观看视频 | 国产成人精品日本亚洲网址 | 九九香蕉视频 | 成人免费网站 | 黄色大全片 | 国产高清不卡视频在线播放 | 美女被啪全免视频软件 | 亚洲美女色成人综合 | 国产精品久久久久久一级毛片 | 国产精品久久久久久久福利院 | 青草视频在线观看免费视频 | 久久精品伦理 | 我们不能是朋友未删减版在线看 | 欧美最新一区二区三区四区 | 日本片网站| 国产精品精品国产一区二区 | 中文字幕日韩精品中文区 | 激情亚洲视频 | 日本大片久久久高清免费看 | 欧美一区二区三区在线观看 | 欧美亚洲视频 | 91精品国产入口 | 片在线观看视频免费 | 自拍影视| 国产成人精选免费视频 | 综合婷婷丁香 | a毛片免费全部播放毛 | 欧美性生活视频 | 亚洲国产成人久久精品影视 | 国产精品91在线播放 | 黄色免费小网站 | 国产精品久久久久久麻豆一区 | 亚洲欧美日韩在线精品2021 | 黄色资源网站 | 成人午夜国产福到在线 | xxx毛片| 欧美黄色片免费 |