本帖最后由 shan_dong_ren 于 2009-09-23 10:02:01 编辑

解决方案 »

  1.   

    线程模型不太好吧,你可以设计一个采集线程,专门负责接收下位机数据采集;如果处理比较耗时,最一个工作者线程池,来消费链表里面的数据(解析包,处理等,线程池加command模式)。另外,记得要有sleep。还有就是采集线程,一次要读尽可能多的数据,比如read(1024*5)之类的。这样就能减少io次数。
      

  2.   

    我现在是开了2个线程(加上主线程一共3)
    其中主线程负责实时显示绘图
    一个线程负责接收数据,并放入链表中
    另外一个线程负责把数据从链表中读出,然后保存至txt文档现在就是保存和绘图跟不上接收数据的步伐
      

  3.   

    我给你出个主意。你绘制的内容好比,一个木桶,要绘 制的数据是水。你的缓存,应该只保存这个桶的大小。这样,不管数据来的多快,你总会有一桶水。
    当水来的太快的时候,水就溢出了。加一个fifo的数组就可以了。
      

  4.   

    典型的生产者消费者模型。我做个一个USB数据采集,30M字节一秒的数据没有问题。用模拟数据代替,可以达到240M字节/s.详见我的下载列表中的质谱仪数据采集。