mutex python
时间: 2024-04-22 15:20:36 浏览: 264
在Python中,mutex(互斥锁)是一种用于线程同步的机制,用于保护共享资源的访问。它可以确保在任意时刻只有一个线程可以访问被保护的代码块,从而避免多个线程同时修改共享数据而导致的数据不一致性或竞态条件。
在Python中,可以使用threading模块提供的Lock类来实现mutex。Lock类提供了acquire()和release()方法,分别用于获取锁和释放锁。当一个线程获取到锁后,其他线程将被阻塞,直到该线程释放锁。
下面是一个使用mutex的简单示例:
```python
import threading
# 创建一个互斥锁对象
mutex = threading.Lock()
# 共享资源
shared_data = 0
def increment():
global shared_data
# 获取锁
mutex.acquire()
try:
# 修改共享资源
shared_data += 1
finally:
# 释放锁
mutex.release()
# 创建多个线程来调用increment函数
threads = []
for _ in range(10):
t = threading.Thread(target=increment)
threads.append(t)
t.start()
# 等待所有线程执行完毕
for t in threads:
t.join()
# 打印最终结果
print("shared_data:", shared_data)
```
在上面的示例中,我们创建了一个互斥锁对象mutex,并定义了一个共享变量shared_data。在increment函数中,我们首先获取锁,然后修改共享变量的值,最后释放锁。这样可以确保每次只有一个线程可以修改shared_data的值,避免了竞态条件。
阅读全文