为什么先输出100个1再输出100个2
import threading
创建一个 Lock 对象
lock = threading.Lock()
定义一个共享变量
shared_value = 0
定义第一个线程的执行函数
def thread1_func():
global shared_value
lock.acquire() # 获取锁
for _ in range(100):
print(1)
shared_value += 1
lock.release() # 释放锁
定义第二个线程的执行函数
def thread2_func():
global shared_value
lock.acquire() # 获取锁
for _ in range(100):
print(2)
shared_value -= 1
lock.release() # 释放锁
创建两个线程
thread1 = threading.Thread(target=thread1_func)
thread2 = threading.Thread(target=thread2_func)
启动两个线程
thread1.start()
thread2.start()
等待两个线程执行完毕
thread1.join()
thread2.join()
输出最终的共享变量值
print("Shared Value:", shared_value)