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<String> mQueue = new LinkedBlockingQueue<String>();

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用法,围绕着链表的构成展开,在使用时需要其自身的一些特点就可以了。学会后就可以运行代码,处理一些实际的阻塞队列问题。

以上是 java中linkedblockingqueue用法 的全部内容, 来源链接: utcz.com/z/542533.html

回到顶部