python 互斥锁
时间: 2023-07-01 18:21:01 浏览: 94
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
在 Python 中,互斥锁是一种线程同步机制,用于控制对共享资源的访问。互斥锁允许只有一个线程在任何给定时刻访问共享资源。如果其他线程试图访问被锁定的资源,则它们将被阻塞,直到锁被释放。
Python 中的互斥锁可以使用 threading 模块中的 Lock 类来实现。Lock 类具有 acquire() 和 release() 方法,可以用于获取和释放锁。当一个线程调用 acquire() 方法时,它会等待锁被释放。当锁被释放时,它会将锁分配给等待时间最长的线程,并阻止其他线程访问共享资源。
以下是一个简单的示例,演示了如何在 Python 中使用互斥锁:
```python
import threading
# 创建一个互斥锁
lock = threading.Lock()
# 定义一个共享资源
shared_resource = 0
def thread_function():
global shared_resource
# 获取锁
lock.acquire()
# 修改共享资源
shared_resource += 1
# 释放锁
lock.release()
# 创建两个线程并启动它们
thread1 = threading.Thread(target=thread_function)
thread2 = threading.Thread(target=thread_function)
thread1.start()
thread2.start()
# 等待线程完成
thread1.join()
thread2.join()
# 输出最终的共享资源值
print("Shared resource value: ", shared_resource)
```
在上面的示例中,我们首先创建一个 Lock 对象,然后定义一个共享资源 shared_resource。然后,我们定义了一个线程函数 thread_function,该函数获取锁,修改共享资源,然后释放锁。最后,我们创建两个线程,并等待它们完成。最终,我们输出共享资源的值,应该为 2。
阅读全文