真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python中threading.local的示例分析-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)Python中threading.local的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)建站主營清水網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app軟件開發(fā)公司,清水h5微信小程序搭建,清水網(wǎng)站營銷推廣歡迎清水等地區(qū)企業(yè)咨詢

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

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

#coding = utf - 8
import threading# 創(chuàng)建全局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 = name
process_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

打印結(jié)果:

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

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

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

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

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

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

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

所以 如果你在開發(fā)多線程應(yīng)用的時候 需要每個線程保存一個單獨的數(shù)據(jù)供當(dāng)前線程操作,可以考慮使用這個方法,簡單有效

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

所以也可以實現(xiàn)相同功能,并且靈活性更多,不過代碼就沒那么優(yōu)雅簡潔了

關(guān)于“Python中threading.local的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。


當(dāng)前文章:Python中threading.local的示例分析-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://weahome.cn/article/pppjj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部