C++多线程 CPU利用率100%,怎么解决?
项目大概:
1、程序需要采集伺服电机A/B相脉冲信号(2500Hz),通过板卡IO口进行采集;
2、IO板卡同步采集两个限位信号,常态为高,电机带动部件碰到限位时,为低。即低有效;
3、另一板卡采集一信号,板卡AD,但是频率较慢,大概300Hz;
4、另一计算机远程登录到本计算机进行远程监控,也可远程操作。
采用双线程进行编程:
线程1,采集IO信号,遇到上升沿进行脉冲计数,同时判断限位状态,以控制伺服电机转向;
线程2,采集AD信号,根据线程1的脉冲计数进行位置甄别,计算、显示数据;
遇到问题:
1、程序运行时,CPU使用率大部分时间为100%;
2、远程计算机登录后,由于CPU使用率过高,鼠标移动也会造成数据采集失误;
3、2.5KHz的脉冲信号采集也会丢步。。。
现在主要问题应该是如何减低CPU使用率?
请做过此类项目的大侠们指点指点~~
BTW:大年二十九了,给论坛的兄弟们拜个早年!!!