python多线程 加锁示例
时间: 2024-08-24 11:00:19 浏览: 48
Python多线程编程之多线程加锁操作示例
在 Python 中,使用 `threading` 模块创建多线程并加锁是很常见的。下面是一个简单的加锁示例,其中我们有一个计数器 `counter` 和一个锁 `lock`:
```python
import threading
# 初始化一个共享变量 counter 和一个锁 lock
counter = 0
lock = threading.Lock()
def increment_counter():
"""
使用锁保护 counter 变量的递增过程
"""
global counter
with lock:
# 获取锁后,更新 counter 并打印当前值
counter += 1
print(f"Counter after increment: {counter}")
# 创建两个线程实例
t1 = threading.Thread(target=increment_counter)
t2 = threading.Thread(target=increment_counter)
# 启动线程
t1.start()
t2.start()
# 等待线程结束
t1.join()
t2.join()
print("All threads finished.")
```
在这个例子中,`with lock:` 语句确保了每次只有一个线程能够进入 `increment_counter` 函数体,实现了对 `counter` 的同步访问。这样就可以避免竞争条件,保证计数器的正确性。
阅读全文