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

  • 相关阅读:
    python学习之__doc__,__module__,__class__,__del__,__call__,__iter__,__next__
    20180910
    20100911
    20180912
    服装分销
    道讯商品条码管理
    [新版新概念英语14册全部视频和课本]
    2012/06/18
    《鬼谷子本经阴符七术》
    归来
  • 原文地址:https://www.cnblogs.com/Tommy-Yu/p/5459291.html
Copyright © 2011-2022 走看看