【发布时间】:2016-03-31 14:40:19
【问题描述】:
我的教授有一个有趣的练习要解决。但我需要一点帮助,以免在假期变得无聊。
练习是为了
- 创建一个多线程负载平衡器,每秒从 5 个传感器读取 1 个测量点。 (因此每秒有 5 个值)。
- 然后使用这些值进行一些“复杂”计算。
- 在屏幕上打印计算结果。 (如传感器1-5的最大值或平均值等,当然是多线程的)
- 作为一项附加任务,我还必须确保如果将来每秒读取 500 个传感器,计算机不会退出工作。(负载平衡)。
我有一个 csv 文本文件,其中包含来自 5 个假想传感器的约 400 个测量点。
我认为我必须做的:
- 将测量点读入数组
- 确保对该数组的线程安全访问
- 为每个计算一些数学内容的值生成一个新线程
- 设置最大并发工作线程的最大值
我是 c# 中的多线程应用程序的新手,但我认为使用线程池是正确的方法。我目前正在处理一个队列,并且可能在一个任务中启动它,这样它就不会阻塞应用程序。
你会推荐什么?
【问题讨论】:
-
您是否打算独立计算每个传感器的最大值、平均值?
-
是的,这就是“设计”。它应该随着传感器的增加以某种方式扩展,但不应该杀死处理器......
-
或更重要的是:不应该杀死应用程序及其功能
-
模拟电脑取胜。
标签: c# multithreading load-balancing