每个线程循环 1w 次,累加变量 count 的值,count 默认值为 0,注意线程安全问题。
时间: 2023-09-16 13:05:10 浏览: 48
在多线程环境下,我们需要考虑线程安全问题。如果多个线程同时对同一个变量进行累加操作,可能会导致结果不准确。
为了解决线程安全问题,可以使用锁机制。在每个线程开始累加操作之前,先获取一个锁,然后进行累加操作,最后释放锁。
下面是一个示例代码:
```python
import threading
lock = threading.Lock() # 创建一个锁对象
count = 0 # 定义全局变量 count,并初始化为 0
def add_count():
global count # 声明全局变量
for _ in range(10000):
with lock:
count += 1
# 创建多个线程,并启动它们
threads = [threading.Thread(target=add_count) for _ in range(10)]
for thread in threads:
thread.start()
# 等待所有线程执行完毕
for thread in threads:
thread.join()
print("count 的最终值为:", count)
```
在上述代码中,我们首先创建了一个锁对象,然后定义了一个全局变量 count,并初始化为 0。接下来,定义了一个函数 add_count,其中使用了 with lock 来获取锁对象。在循环中,每个线程会对 count 变量进行 1w 次累加操作,最后释放锁。最后,我们创建了多个线程,并启动它们,等待所有线程执行完毕后,打印 count 的最终值。
通过上述代码,我们实现了每个线程循环 1w 次并累加变量 count 的值,并解决了线程安全问题。最终输出的 count 的结果应该为 100000。