python中 threading local的用法
时间: 2023-12-10 12:28:59 浏览: 73
ThreadLocal的使用
Python中threading模块中的local类是一个用于创建线程本地数据的类。线程本地数据是指每个线程都有自己的数据副本,这些副本互相独立,互不干扰。
local类的用法:
1. 创建一个local对象
```
local_data = threading.local()
```
2. 将数据存储到local对象中
```
local_data.my_data = 100
```
3. 在不同线程中访问local对象的数据时,每个线程都有自己的数据副本
```
import threading
local_data = threading.local()
def worker():
local_data.my_data = threading.current_thread().name
print(f'{threading.current_thread().name} has {local_data.my_data}')
t1 = threading.Thread(target=worker)
t2 = threading.Thread(target=worker)
t1.start()
t2.start()
t1.join()
t2.join()
```
输出结果:
```
Thread-1 has Thread-1
Thread-2 has Thread-2
```
在这个例子中,我们定义了一个worker函数,它将当前线程的名称存储到local对象的my_data属性中,然后将其打印出来。我们创建了两个线程t1和t2,它们都执行worker函数。由于每个线程都有自己的local对象,因此它们存储在local对象中的数据是互相独立的,每个线程都可以独立地访问和修改自己的数据。
阅读全文