码迷,mamicode.com
首页 > 编程语言 > 详细

TLS 与 python thread local

时间:2016-05-04 18:51:24      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:

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,谢谢!

TLS 与 python thread local

标签:

原文地址:http://www.cnblogs.com/Tommy-Yu/p/5459291.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!