javascript/131045.html">java Queue处理
实例代码:
import java.util.LinkedList;import java.util.Queue;private static Queue<FrameStruct> frameQueue = new LinkedList<FrameStruct>();private static Lock lock = new ReentrantLock();private PlayerThread p = new PlayerThread();
从队列取数据进行处理:
private class PlayerThread extends Thread { @Override public void run() { FrameStruct frame; while(bPlayRun) { if(bCanFlush) { lock.lock(); while((frame=frameQueue.poll())!=null) { onFrame(frame.buf, 0, frame.len); try { Thread.sleep(30); } catch (InterruptedException e) { } } lock.unlock(); } } } }
另一线程将数据放入队列:
FrameStruct frame = new FrameStruct();frame.buf = new byte[byteCount];frame.len = byteCount;System.arraycopy(frameData, 0, frame.buf, 0, byteCount);lock.lock();frameQueue.offer(frame);lock.unlock();
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
新闻热点
疑难解答
图片精选