糖醋萝北 2023-07-31 11:54 采纳率: 0%
浏览 4

python实现两个线程同步执行

为什么先输出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)

  • 写回答

3条回答 默认 最新

报告相同问题?

问题事件

  • 创建了问题 7月31日