【線程 04】threadloca 解決數據混亂問題

import threading

num = 10
local = threading.local()


def run(x, n):
    x = x + n
    x = x - n


def func(n):
    local.x = num
    for i in range(10000):
        run(local.x, n)
    print('%s-%d' % (threading.current_thread().name, local.x))


if __name__ == '__main__':
    t1 = threading.Thread(target=func, args=(6,))
    t2 = threading.Thread(target=func, args=(9,))
    t1.start()
    t2.start()
    t1.join()
    t2.join()
    print('num', num)

# 爲每個線程綁定一個數據庫連接,HTTP請求,用戶身份信息等
# 這樣一個線程的所有調用到的處理函數都可以非常方便地訪問這些資源

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章