栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java中linkedblockingqueue用法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java中linkedblockingqueue用法

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

1.概念

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

2.特点

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

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

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

(4)非连续性内存空间

3.实例

import java.util.concurrent.linkedBlockingQueue;
 
public class Test {
public static void main(String[] args) {
linkedBlockingQueue mQueue = new linkedBlockingQueue();
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
String s = mQueue.take();
System.out.println("取出数据:" + String.valueOf(s));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
 
new Thread(new Runnable() {
@Override
public void run() {
int count = 0;
 
while (true) {
System.out.println("装载数据:" + count);
try {
mQueue.put(String.valueOf(count));
 
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
 
count++;
}
}
}).start();
}
}

以上就是java中linkedblockingqueue用法,围绕着链表的构成展开,在使用时需要其自身的一些特点就可以了。学会后就可以运行代码,处理一些实际的阻塞队列问题。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/15171.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号