zoukankan      html  css  js  c++  java
  • 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,谢谢!

  • 相关阅读:
    用jquery实现手风琴效果
    网易轻博客特点
    用display做导航
    小结
    有序列表的显示
    水仙花
    相识多少天
    关于javascript中this的运用
    BFC
    八月第三周
  • 原文地址:https://www.cnblogs.com/Tommy-Yu/p/5459291.html
Copyright © 2011-2022 走看看