Python中的锁是一种用于控制并发访问共享资源的机制。它可以防止多个线程同时访问某个共享资源,从而避免出现竞态条件。在Python中,使用threading模块中的Lock类来实现锁。
以下是一个示例代码:
import threading
# 创建一个锁对象
lock = threading.Lock()
# 定义一个共享资源
shared_resource = 0
# 定义一个函数,该函数会被多个线程调用
def update_resource():
global shared_resource
# 获取锁
lock.acquire()
try:
# 在锁的保护下更新共享资源
shared_resource += 1
finally:
# 释放锁
lock.release()
# 创建多个线程来更新共享资源
threads = []
for _ in range(10):
t = threading.Thread(target=update_resource)
threads.append(t)
t.start()
# 等待所有线程执行完毕
for t in threads:
t.join()
# 输出最终的共享资源值
print("Shared resource:", shared_resource)
这段代码中,我们创建了一个锁对象lock,所有需要访问共享资源的线程都必须在访问之前获取锁,然后在访问完成后释放锁。这样可以确保任意时刻只有一个线程在更新共享资源,避免了并发访问导致的问题。
应VX提问解答