• 技术文章 >java >java基础

    java中linkedblockingqueue用法

    小妮浅浅小妮浅浅2021-01-11 14:44:47原创3177

    在阻塞队列的增加元素时,有一种在队尾添加,队头是用来取出元素的,这种阻塞我们成为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
    上一篇:java ArrayBlockingQueue的方法及不足点 下一篇:linkedblockingqueue在java中的原理

    相关文章推荐

    • java中ArrayBlockingQueue的使用• java ArrayBlockingQueue源码探讨• ArrayBlockingQueue在java的入队• java中ArrayBlockingQueue的出队• java ArrayBlockingQueue的方法及不足点

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网