ThreadLocal变量

ThreadLocal变量,它本身是一个全局变量,但是每个线程却可以利用它来保存属于自己的私有数据,这些私有数据对其他线程也是不可见的。


#coding=utf-8

import threading

local=threading.local()

def process_student():
    student_name=local.name
    print("线程名:%s,学生名:%s"%(threading.current_thread().name,student_name))

def process_thread(name):
    #传入name,将name绑定到local.name上作为全局变量,供其它函数调用
    local.name=name
    process_student()

if __name__=='__main__':
    t1=threading.Thread(target=process_thread,args=('Vince',),name='Thread-Vince')
    t2=threading.Thread(target=process_thread,args=('Jerry',),name='Thread-Jerry')
    t1.start()
    t2.start()
    t1.join()
    t2.join()
    
结果:
线程名:Thread-Vince,学生名:Vince
线程名:Thread-Jerry,学生名:Jerry

你可能感兴趣的:(ThreadLocal变量)