Python程序实现使用互斥锁,完成3个线程对同一个全局变量各进行100次加1操作
时间: 2023-06-01 21:06:18 浏览: 115
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
好的,关于互斥锁的使用,我们可以使用Python中的threading模块来实现。以下是示例代码:
```python
import threading
# 全局变量
count = 0
# 创建互斥锁
lock = threading.Lock()
# 加1操作的函数
def add_one():
global count
for i in range(100):
# 先获取锁
lock.acquire()
# 对全局变量进行操作
count += 1
# 释放锁
lock.release()
# 创建3个线程进行加1操作
threads = []
for i in range(3):
t = threading.Thread(target=add_one)
threads.append(t)
t.start()
# 等待所有线程结束
for t in threads:
t.join()
# 输出结果
print("count:", count)
```
我们创建了一个全局变量count,并使用互斥锁lock来保护它。在add_one函数中,我们首先通过lock.acquire()获取锁,然后对全局变量count进行加1操作,最后通过lock.release()释放锁。这样就保证了对count的操作不会出现冲突。
最后,我们创建了3个线程来分别执行add_one函数,并在主线程中等待所有线程结束后输出结果。
希望这个答案能解决您的问题!
阅读全文