1. 程式人生 > >多線程threading.local的作用?

多線程threading.local的作用?

存儲 import 線程 取值 pre read imp 示例 sleep

1.作用:

內部自動為每個線程維護一個空間(字典),用於當前存取屬於自己的值.保證線程之間的數據隔離.
{
    線程ID: {...}
    線程ID: {...}
    線程ID: {...}
    線程ID: {...}
}
    

2.示例:

import time
import threading

v = threading.local()


def func(arg):
    # 內部會為當前線程創建一個空間用於存儲:phone=自己的值
    v.phone = arg
    time.sleep(2)
    # 去當前線程自己空間取值
    print(v.phone, arg)


for i in range(10):
    t = threading.Thread(target=func, args=(i,))
    t.start()

多線程threading.local的作用?