python 同步锁
时间: 2023-11-03 17:59:56 浏览: 49
Python 中的同步锁是一个用于控制多个线程对共享资源进行访问的工具。它可以确保在同一时间只有一个线程可以访问共享资源,避免了多个线程同时修改数据导致的冲突。
在 Python 中,可以使用 threading 模块中的 Lock 类来创建同步锁。下面是一个使用同步锁的示例代码:
```python
import threading
# 创建一个同步锁
lock = threading.Lock()
# 共享资源
shared_resource = 0
def increment():
global shared_resource
for _ in range(1000000):
# 加锁
lock.acquire()
shared_resource += 1
# 解锁
lock.release()
# 创建多个线程并启动
threads = []
for _ in range(10):
t = threading.Thread(target=increment)
threads.append(t)
t.start()
# 等待所有线程执行完毕
for t in threads:
t.join()
print(shared_resource) # 输出结果应为 10000000
```
在上面的示例代码中,我们首先创建一个 Lock 对象 `lock`,然后定义了一个共享资源 `shared_resource`。在 `increment` 函数中,使用 `lock.acquire()` 来获取锁,确保只有一个线程可以访问共享资源,然后进行资源的修改操作,最后使用 `lock.release()` 来释放锁。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)