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();
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!