java中linkedblockingqueue用法

在阻塞队列的增加元素时,有一种在队尾添加,队头是用来取出元素的,这种阻塞我们成为linkedblockingqueue,主要有链表构成,在队列的顺序上是先进先出。下面我们就linkedblockingqueue的概念、特点进行学习,然后在实例中找寻linkedblockingqueue的使用方法。

1.概念

由链表结构组成的有界阻塞队列。底层基于单向链表实现的阻塞队列,可以当做无界队列也可以当做有界队列来使用。

2.特点

1)内部使用节点关联,会产生多一点内存占用

2)使用两个重入锁分别控制元素的入队和出队,用Condition进行线程间的唤醒和等待

3)有边界的,在默认构造方法中容量是Integer.MAX_VALUE

4)非连续性内存空间

3.实例

importjava.util.concurrent.LinkedBlockingQueue;

publicclassTest{
publicstaticvoidmain(String[]args){
LinkedBlockingQueue<String>mQueue=newLinkedBlockingQueue<String>();
newThread(newRunnable(){
@Override
publicvoidrun(){
while(true){
try{
Strings=mQueue.take();
System.out.println("取出数据:"+String.valueOf(s));
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
}
}).start();

newThread(newRunnable(){
@Override
publicvoidrun(){
intcount=0;

while(true){
System.out.println("装载数据:"+count);
try{
mQueue.put(String.valueOf(count));

Thread.sleep(2000);
}catch(InterruptedExceptione){
e.printStackTrace();
}

count++;
}
}
}).start();
}
}

原文来自:https://www.py.cn

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容