thread local in python
参考 Thread Locals in Python: Mostly easy
线程局部变量
1 | import threading |
Thread-1
Thread-2
各线程独享自己的变量,但是使用全局变量 mydata
主线程也有自己的线程局部变量
1 | import threading |
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Python27\lib\threading.py", line 801, in __bootstrap_inner
self.run()
File "E:/learn/python/test/thread_local.py", line 15, in run
mydata.x['message'] = self.name
AttributeError: 'thread._local' object has no attribute 'x'
Exception in thread Thread-2:
Traceback (most recent call last):
File "C:\Python27\lib\threading.py", line 801, in __bootstrap_inner
self.run()
File "E:/learn/python/test/thread_local.py", line 15, in run
mydata.x['message'] = self.name
AttributeError: 'thread._local' object has no attribute 'x'
线程 w1,w2 没有 x 属性,子线程与主线程拥有各自的变量
继承 threading.local
1 | import threading |
Thread-1
Thread-2
应用实例
bottle 0.4.10
1 | class Request(threading.local): |
Sync From: https://github.com/TheBigFish/blog/issues/4