一个数据采集线程和一个数据处理线程,比如数据采集线程采集完128个数据后,数据处理线程开始工作,数据处理线程处理完这128个数据后,数据采集线程再次工作,这样的话,感觉数据采集的话会丢失一部分数据啊(数据处理线程工作的时间段)?如何让这两个线程更合理的工作呢?

解决方案 »

  1.   

    采集线程 
     1 采集A缓冲区 -> 采集满提交A缓冲区给处理线程,
     2 采集B缓冲区 -> 采集满提交B缓冲区给处理线程,
     3   返回1处理线程 
     1 等待处理A, 处理A
     2 等待处理B, 处理B
     3 返回1
       
       
      

  2.   

    我明白您的意思了,就是说处理A缓冲区的时候,同时在将采集数据放到B缓冲区;处理B缓冲区的时候,同时将采集的数据放到A缓冲区。   这里是不是就不用考虑同步的问题了,因为没有对同一缓冲区进行操作.
      

  3.   

    那如果要的是IdServer接收数据,我要用另一个线程来处理数据,那么我如何控制线程何时处理数据,因为idServer是每隔一会儿发过来,用这种方法肯定要同步。