在这个示例中,我们将使用类变量代替 global 定义全局变量,并实现多线程。可以按照以下步骤进行操作:
1. 定义一个类,将需要定义为全局变量的变量定义为类变量。
import threading
class GlobalVar:
var = 0
lock = threading.Lock()
2. 在程序中使用该类的实例来访问和修改全局变量,并使用锁来保证线程安全。
def update_var():
gv = GlobalVar()
with gv.lock:
gv.var += 1
threads = []
for i in range(5):
t = threading.Thread(target=update_var)
threads.append(t)
t.start()
for t in threads:
t.join()
gv = GlobalVar()
print(gv.var) # 输出 5