ThreadLocal的使用
-
ThreadLocal 变量,它本身是一个全局变量,但是每个线程却可以利用它来保存属于自己的私有数据,这些私有数据对其他线程也是不可见的。
-
1 import threading 2 #创建全局ThreadLocal对象 3 local = threading.local() 4 5 def process_student(): 6 student_name = local.name 7 print('线程名:%s 学生姓名:%s'%(threading.current_thread().getName(),student_name)) 8 9 def process_thread(name): 10 #将传入的name值绑定到local的name上 11 local.name = name 12 process_student() 13 14 t1 = threading.Thread(target=process_thread,args=('张三',),name='Thread-A') 15 t2 = threading.Thread(target=process_thread,args=('李五',),name='Thread-B') 16 t1.start() 17 t2.start()
-
1 线程名:Thread-A 学生姓名:张三 2 线程名:Thread-B 学生姓名:李五
正是江南好风景