JAVA 数据结构之Queue处理实例代码
javaQueue处理
实例代码:
importjava.util.LinkedList; importjava.util.Queue; privatestaticQueue<FrameStruct>frameQueue=newLinkedList<FrameStruct>(); privatestaticLocklock=newReentrantLock(); privatePlayerThreadp=newPlayerThread();
从队列取数据进行处理:
privateclassPlayerThreadextendsThread{
@Override
publicvoidrun(){
FrameStructframe;
while(bPlayRun)
{
if(bCanFlush)
{
lock.lock();
while((frame=frameQueue.poll())!=null)
{
onFrame(frame.buf,0,frame.len);
try{
Thread.sleep(30);
}catch(InterruptedExceptione){
}
}
lock.unlock();
}
}
}
}
另一线程将数据放入队列:
FrameStructframe=newFrameStruct(); frame.buf=newbyte[byteCount]; frame.len=byteCount; System.arraycopy(frameData,0,frame.buf,0,byteCount); lock.lock(); frameQueue.offer(frame); lock.unlock();
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!