TLS 与 python thread local
TLS
先说TLS( Thread Local Storage), wiki上是这么解释的:
Thread-local storage (TLS) is a computer programming method that uses static or global memory local to a thread.
线程本地存储(TLS)是一种电脑编程技术, 它用静态或者全局的存储器来保存线程本地的变量(意译)。
其目的是为了实现变量隔离,即“同一个”全局变量,对于不同的线程,其值可以不同(类似副本的概念)。参考以下python的实现及说明。
python thread local
import threading global_storage=threading.local()
副本作用
# -*- coding:utf-8 -*- import threading global_storage = threading.local() import time def test_local(): time.sleep(1) if hasattr(global_storage,'x'): global_storage.x+=1 else: global_storage.x=0 print global_storage.x if __name__=='__main__': for i in range(3): threading.Thread(target=test_local).start()
以上代码将会输出3个0(x有三个副本)
而不是0,1,2(x并非唯一的单例)
当然,对于单线程来讲,thread local 就弱化为了一个全局变量池。
转载请注明本文来自:http://www.cnblogs.com/Tommy-Yu/p/5459291.html,谢谢!