python实验−threadLocal变量
时间: 2025-01-01 09:38:48 浏览: 36
在Python中,`threading.local()` 是 `threading` 模块提供的一个类,它用于创建线程局部存储(Thread Local Storage,TLS)。这种机制允许你在每个独立的线程中保存特定于该线程的数据,而这些数据对其他线程来说是私有的,互不影响。
当你在一个线程中创建一个 `threading.local()` 的实例时,它会在内存中为该线程分配一块独立的存储空间。当你在同一线程中访问这个变量时,你会总是得到相同的值,因为它是为该线程独有的。然而,在不同的线程之间,它们各自的 `threadLocal` 变量是隔离的。
这是使用 `threading.local()` 的基本示例:
```python
import threading
class MyData(threading.local):
def __init__(self):
self.data = []
def worker():
my_data = MyData()
# 在这里添加一些特定于线程的数据
my_data.data.append("Thread-specific data")
print(f"My local data: {my_data.data}")
# 创建两个线程并运行
t1 = threading.Thread(target=worker)
t2 = threading.Thread(target=worker)
t1.start()
t2.start()
t1.join()
t2.join()
print("\nBoth threads finished.")
```
在这个例子中,`my_data` 对象在每个线程中都有自己的 `data` 列表,所以它们各自打印出不同的内容。
阅读全文
相关推荐


















