python threading 线程锁 使用方法
时间: 2023-10-10 13:14:17 浏览: 122
Python中提供了一些线程同步机制来避免多个线程同时修改共享数据时引起的数据不一致问题,其中最常用的就是线程锁。
线程锁的基本使用方法如下:
1. 创建锁对象:lock = threading.Lock()
2. 获取锁:lock.acquire()
3. 释放锁:lock.release()
在多个线程中对共享资源进行访问时,可以在需要对共享资源进行操作的代码段前后使用锁,以确保同一时间只有一个线程可以访问这个资源,示例代码如下:
```python
import threading
# 共享资源
count = 0
# 创建锁对象
lock = threading.Lock()
# 线程函数
def add_one():
global count
# 获取锁
lock.acquire()
# 对共享资源进行操作
count += 1
# 释放锁
lock.release()
# 创建多个线程
threads = []
for i in range(10):
t = threading.Thread(target=add_one)
threads.append(t)
# 启动线程
for t in threads:
t.start()
# 等待所有线程执行完毕
for t in threads:
t.join()
# 输出最终结果
print(count)
```
在上面的示例代码中,通过创建一个锁对象,并在对共享资源进行操作的代码段前后获取和释放锁来避免了多个线程同时修改共享资源带来的问题。
阅读全文