目录
一、创建全局对象:
1、将线程中local类实例化---->对象
2、将对象的值递增
3、测试多个线程之间的全局变量是否共享
二、实例代码演示:
import threading
import time
a = threading.local() # 实例化local类-->变成一个对象a
def worker():
a.x = 0
for i in range(20):
time.sleep(0.01)
a.x += 1
print(threading.current_thread(), a.x)
for i in range(10): # 调用10个线程
threading.Thread(target=worker).start()
三、总结:
1、local类用于创建一个全局对象,不过该对象只能在线程内部使用,也就是说,全局是针对一个线程而言的,不能在多个线程中共享。
2、每个线程都是将a.x的变量值增加到20,不再累加了。所以多个线程之间不共享全局变量。
3、 current_thread()是Python中线程模块的内置方法。 它用于返回当前Thread对象,该对象对应于调用者的控制线程。