技术文章 > java >  java基础 > 正文

SynchronousQueue在java中的元素增减

小妮浅浅

在SynchronousQueue中想要增减元素,即入队和同样要涉及到两种方法:put和take。当一种方法调用时,队列会被阻塞,另一种方法等当前任务结束才能调用,可以说整个线程的运行处于安全的状态。下面我们就先介绍SynchronousQueue元素增减的方法,然后就入队和出队的方法分别进行讨论。

1.方法介绍

put(E e) 添加一个非空元素,同时会阻塞住,直到另一个线程调用take()

take() 取出一个元素,如果队列为空,阻塞,直到另一个线程调用put(E e)

2.入队put方法实例

public void put(E e) throws InterruptedException {  
    if (e == null) throw new NullPointerException();// 元素不可为null
    // 三个参数分别是:传输的元素,是否需要超时,超时的时间
    if (transferer.transfer(e, false, 0) == null) {
        // 如果传输失败,直接让线程中断并抛出中断异常
        Thread.interrupted();
        throw new InterruptedException();
    }
}

3.出队take方法实例

public E take() throws InterruptedException {
    E e = transferer.transfer(null, false, 0);
    if (e != null)
        return e;
    Thread.interrupted();
    throw new InterruptedException();
}

以上就是SynchronousQueue在java中的元素增减方法,在理解了SynchronousQueue的用法后,我们就可以对元素的增加或删除有所变动,学会后赶快试试代码的运行吧。

免费视频教程
本文原创发布python学习网,转载请注明出处,感谢您的尊重!
相关文章
 ConcurrentLinkedQueue在java出队分析
 java ConcurrentLinkedQueue的用法整理
 java ConcurrentLinkedQueue元素获取操作
 java中SynchronousQueue是什么意思
 java中SynchronousQueue的原理
相关视频章节
 网络爬虫
 云端部署Web应用程序视频
 Web应用框架Flask和文件模板
 Web应用程序开发概述
 继承和多态
作者信息
推荐视频
视频教程分类