实时监控 线程
现在要开发一个设备监控程序,有8类40多台设备需要通过串口进行监控。我现在的做法是每类设备做个类,在类中定义一个查询线程。现在这些设备的采集采集程序分在多台计算机上完成。想请教高手我如果我都在一台设备上完成,一个主程序里面开怎么多线程是否有问题,比如引起死机等。或者有什么更好的实现方法,要实时性好。
举例:
class A
{
MCthread *mc; // 设备状态查询线程
A();
CMD(); //设备控制方法。
}
A::A
{
mc = new MCthread();
}
A::CMD()
{
//挂起线程
//执行设备控制命令。
//恢复线程
}
另外,有类设备,每两个设备之间的参数要进行比较,我现在是用一个线程里查询两个设备的状态,然后比较,处理,存储到数据库。考虑到实时性,我想在线程里只完成查询和存储,比较和处理在别的地方完成,但没有想好如何实现,如果比较和处理也做成线程的话,那程序里的线程就太多了,希望各位大虾多给意见。
环境,win200 + sql server 2000
[解决办法]
会不会造成延时主要看采集的数据和比较处理的速度,如果一台电脑不能监控这么多设备的话就不行,这不是线程的多少问题
而且电脑跟设备的通信方式也回产生延时,这些都要测试才知道,比如说,如果你的CPU占用率100%,那肯定回造成延时,或者通信带宽不够也会有问题