用python写一个多线程程序求平均值和最大值和最小值
时间: 2024-05-15 07:19:32 浏览: 112
以下是一个使用多线程计算平均值、最大值和最小值的Python程序:
```python
import threading
# 数据
data = [3, 5, 1, 7, 4, 8, 9, 2, 6]
# 平均值、最大值、最小值
average = None
maximum = None
minimum = None
# 线程锁
lock = threading.Lock()
# 计算平均值的线程
class AverageThread(threading.Thread):
def run(self):
global average
with lock:
average = sum(data) / len(data)
# 计算最大值的线程
class MaximumThread(threading.Thread):
def run(self):
global maximum
with lock:
maximum = max(data)
# 计算最小值的线程
class MinimumThread(threading.Thread):
def run(self):
global minimum
with lock:
minimum = min(data)
# 启动线程
threads = [
AverageThread(),
MaximumThread(),
MinimumThread(),
]
for thread in threads:
thread.start()
# 等待线程结束
for thread in threads:
thread.join()
# 输出结果
print("平均值:", average)
print("最大值:", maximum)
print("最小值:", minimum)
```
输出结果:
```
平均值: 5.0
最大值: 9
最小值: 1
```
该程序使用了三个线程来计算平均值、最大值和最小值。在每个线程内部,使用了线程锁来保证数据的安全性。最后,等待所有线程结束后输出结果。
阅读全文