python Lock应用
时间: 2023-07-09 13:41:24 浏览: 89
在Python中,Lock是一种同步原语,用于控制多个线程对共享资源的访问。Lock对象有两个状态:locked和unlocked。如果一个线程获取了Lock对象,那么其他线程就无法获取该对象,直到该线程释放了Lock对象。以下是Lock的应用示例:
```python
import threading
# 共享资源
count = 0
# 创建Lock对象
lock = threading.Lock()
# 自增函数
def increment():
global count
for i in range(100000):
# 获取锁
lock.acquire()
count += 1
# 释放锁
lock.release()
# 创建10个线程
threads = []
for i in range(10):
t = threading.Thread(target=increment)
threads.append(t)
# 启动线程
for t in threads:
t.start()
# 等待线程结束
for t in threads:
t.join()
# 输出最终结果
print("count:", count)
```
在上面的示例中,我们创建了一个全局变量count,然后创建了一个Lock对象lock。在increment函数中,我们使用lock.acquire()获取锁,然后对count进行自增操作,最后使用lock.release()释放锁。由于只有一个线程可以获取到锁,因此对count的自增操作是线程安全的。最终的结果应该是count等于1000000。
阅读全文