TLS 与 python thread local

TLShtml

先说TLS( Thread Local Storage), wiki上是这么解释的:python

Thread-local storage (TLS) is a computer programming method that uses static or global memory local to a thread.编程

线程本地存储(TLS)是一种电脑编程技术, 它用静态或者全局的存储器来保存线程本地的变量(意译)。spa

 

其目的是为了实现变量隔离,即“同一个”全局变量,对于不一样的线程,其值能够不一样(相似副本的概念)。参考如下python的实现及说明。线程

 

python thread localhtm

import threading
global_storage=threading.local()

 

副本做用blog

# -*- 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有三个副本)ip

而不是0,1,2(x并不是惟一的单例)utf-8

 

固然,对于单线程来说,thread local 就弱化为了一个全局变量池get

 

转载请注明本文来自:http://www.cnblogs.com/Tommy-Yu/p/5459291.html,谢谢!

相关文章
相关标签/搜索