最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2020年03月16日 13:43:31   作者:楓飛飛  
這篇文章主要介紹了Python threading.local代碼實例及原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

Python的線程操作在舊版本中使用的是thread模塊,在Python27和Python3中引入了threading模塊,同時thread模塊在Python3中改名為_thread模塊,threading模塊相較于thread模塊,對于線程的操作更加的豐富,而且threading模塊本身也是相當(dāng)于對thread模塊的進一步封裝而成,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進行賦值,

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

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

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

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

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

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

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Python迭代和迭代器

    詳解Python迭代和迭代器

    這篇文章主要為大家詳細介紹了Python迭代和迭代器,感興趣的小伙伴們可以參考一下
    2016-03-03
  • 微軟開源最強Python自動化神器Playwright(不用寫一行代碼)

    微軟開源最強Python自動化神器Playwright(不用寫一行代碼)

    這篇文章主要介紹了微軟開源最強Python自動化神器Playwright(不用寫一行代碼),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 使用用Pyspark和GraphX實現(xiàn)解析復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)

    使用用Pyspark和GraphX實現(xiàn)解析復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)

    GraphX是Spark提供的圖計算API,它提供了一套強大的工具,這篇文章將詳細為大家介紹如何在Python?/?pyspark環(huán)境中使用graphx進行圖計算,感興趣的可以了解下
    2024-01-01
  • python try 異常處理(史上最全)

    python try 異常處理(史上最全)

    為了處理異常,我們使用try...except,這篇文章主要介紹了python try 異常處理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • 詳解Python垃圾回收機制和常量池的驗證

    詳解Python垃圾回收機制和常量池的驗證

    這篇文章主要介紹了詳解Python垃圾回收機制和常量池的驗證,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • Python處理unicode字符的方法詳解

    Python處理unicode字符的方法詳解

    這篇文章主要介紹了Python處理unicode字符的方法詳解,unicodedata中定義了所有Unicode字符的字符屬性,主要包含兩個功能,其一是根據(jù)名字查找字符;其二是給定字符查找其對應(yīng)的信息,需要的朋友可以參考下
    2023-08-08
  • python中itertools模塊使用小結(jié)

    python中itertools模塊使用小結(jié)

    itertools 是python的迭代器模塊,itertools提供的生成迭代器的函數(shù),相當(dāng)高效且節(jié)省內(nèi)存。使用這些工具,你將能夠創(chuàng)建自己定制的迭代器用于高效率的循環(huán)。接下來通過本文給大家介紹python中itertools模塊使用,感興趣的朋友一起看看吧
    2021-11-11
  • Python實現(xiàn)的端口掃描功能示例

    Python實現(xiàn)的端口掃描功能示例

    這篇文章主要介紹了Python實現(xiàn)的端口掃描功能,涉及Python針對端口的連接、打開、關(guān)閉及線程相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • Python 中的Sympy詳細使用

    Python 中的Sympy詳細使用

    這篇文章主要介紹了Python 中的Sympy詳細使用,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • PyCharm設(shè)置中文(漢化與解除漢化)的方法

    PyCharm設(shè)置中文(漢化與解除漢化)的方法

    這篇文章介紹了PyCharm設(shè)置中文(漢化與解除漢化)的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06

最新評論

屏边| 通道| 新野县| 岱山县| 平遥县| 加查县| 合肥市| 大厂| 嘉荫县| 芦溪县| 宝鸡市| 宁化县| 卓尼县| 卓资县| 蚌埠市| 山东省| 越西县| 山丹县| 平山县| 松桃| 峨山| 普定县| 土默特右旗| 四平市| 桦南县| 同德县| 永年县| 清涧县| 米林县| 江口县| 儋州市| 庆安县| 沧源| 天等县| 海阳市| 邢台县| 庆城县| 宿迁市| 商洛市| 托克托县| 白玉县|