请问诸位,为什么会如此,有什么好的解决方法:
  描述: 设备数据上传放入缓存队列,如下(1);同时从缓存队列中取数据并进行处理,如下(2,3).
  问题: 设备实时数据上传速度快上传量大,而取数据,处理数据的能力比较慢,造成recordBuffer队列很快就满,(用了个clear),但最终现象,似乎程序一直在存数据清理数据(1),而没有处理数据(2,3).
1.public void setdata(data){
       synchronized(recordBuffer)
{
if(recordBuffer.size()<maxBufferLength)
{       recordBuffer.addLast(data);
recordBuffer.notifyAll();
}
else
{    logger.debug("缓存不足");
     // recordBuffer.clear();
}
}
}
2.public Data getdata(){
       synchronized(recordBuffer)
{   while(recordBuffer.size()<1)
{    try
{
recordBuffer.wait();
} catch (InterruptedException e)
{
logger.error(e.getMessage());
}
}
return recordBuffer.removeFirst();
}
}
3.public void Deal{   //处理取得的设备数据,处理相对比较多慢
    deal(getdata());
}