亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

threading.local 代碼筆記

發布時間:2020-06-26 09:49:17 來源:網絡 閱讀:230 作者:windcharger 欄目:編程語言

演示局部變量

import threading
import time

def worker():
    x = 0
    for i in range(100):
        time.sleep(0.0001)
        x += 1

    print(threading.current_thread(), x)

for i in range(3):
    threading.Thread(target=worker).start()

測試使用全局變量

class A:
    def __init__(self):
        self.x = 0

def worker():
    global_data.x = 0
    for i in range(100):
        time.sleep(0.0001)
        global_data.x += 1
    print(threading.current_thread(), global_data.x)

for i in range(3):
    threading.Thread(target=worker).start()
# 測試發現結果不是我們期望的那樣

引入threading.local

將全局變量,變換成線程的局部變量

global_data = threading.local()

def worker():
    global_data.x = 0
    for i in range(100):
        time.sleep(0.0001)
        # x += 1
        global_data.x += 1
    print(threading.current_thread(), global_data.x)

for i in range(3):
    threading.Thread(target=worker).start()

演示threading.local不能跨線程的問題

X = 'abc'
ctx = threading.local()
ctx.x = 123   # 留意下這一句

print(ctx, type(ctx), ctx.x)

def worker():
    print(X)
    print(ctx)
    # ctx.x = '11111'  # 注釋掉這一行,會報錯。去掉注釋在執行一次
    print(ctx.x)   
    print('working')

worker()
print('========')
threading.Thread(target=worker).start()

# 第三行,因為這個變量在定義的時候是在當前線程下,而threading.local是不能跨線程的
# 所以在啟子線程的時候,重新訪問這個變量的時候會拋出異常
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

拉孜县| 怀宁县| 富阳市| 通辽市| 衡东县| 谷城县| 湘乡市| 富锦市| 毕节市| 利津县| 蒙自县| 延寿县| 钟山县| 昌宁县| 新闻| 宝应县| 奉节县| 类乌齐县| 霍林郭勒市| 萨迦县| 临城县| 乌拉特前旗| 嘉荫县| 张家口市| 兰溪市| 曲周县| 兴和县| 皮山县| 修文县| 高邮市| 石嘴山市| 澄城县| 苏州市| 景东| 梅州市| 滦南县| 南丰县| 瓮安县| 大宁县| 樟树市| 吴川市|