BlockingDeque在Java中的put()方法及其示例

BlockingDeque在Java中的put()方法及其示例

BlockingDeque 中的 put(E e) 方法将指定的元素插入到由此deque表示的队列中(换句话说,在deque的尾部)。如果受限容量,则会等待空间可用。

语法:

public void put(E e)

参数: 此方法接受一个强制性参数 e ,它是要插入到 BlockingDeque 后部的元素。

返回: 此方法不返回任何内容。

异常: 该程序会抛出两个异常,如下所示:

  • NullPointerException - 如果指定的元素为null
  • InterruptedException - 如果在等待时被中断

:在Java中, BlockingDequeput() 方法是从 LinkedBlockingDeque 类继承而来的。

以下程序演示了 BlockingDeque 的put()方法:

程序1:

// Java程序演示BlockingDeque的put()方法
  
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.BlockingDeque;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
        throws InterruptedException
    {
  
        // 创建 BlockingDeque 对象
        BlockingDeque<Integer> BD
            = new LinkedBlockingDeque<Integer>();
  
        // 在BlockingDeque的末尾添加数字
        BD.put(7855642);
        BD.put(35658786);
        BD.put(5278367);
        BD.put(74381793);
  
        // 打印Deque
        System.out.println("Blocking Deque: " + BD);
    }
}
Blocking Deque: [7855642, 35658786, 5278367, 74381793]

程序2:

// Java程序演示BlockingDeque的put()方法
// 抛出NullPointerException
  
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.BlockingDeque;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
        throws InterruptedException
    {
  
        // 创建 BlockingDeque 对象
        BlockingDeque<Integer> BD
            = new LinkedBlockingDeque<Integer>();
  
        // 在BlockingDeque的末尾添加数字
        BD.put(7855642);
        BD.put(35658786);
        BD.put(5278367);
  
        // 抛出一个异常
        BD.put(null);
  
        // 打印Deque
        System.out.println("Blocking Deque: " + BD);
    }
}

输出结果:

Exception in thread "main" java.lang.NullPointerException
    at java.util.concurrent.LinkedBlockingDeque.putLast(LinkedBlockingDeque.java:390)
    at java.util.concurrent.LinkedBlockingDeque.put(LinkedBlockingDeque.java:649)
    at GFG.main(GFG.java:24)

程序3:

// Java程序演示BlockingDeque的put()方法
// 当超过容量时
  
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.BlockingDeque;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
        throws InterruptedException
    {
  
        // 创建BlockingDeque对象
        BlockingDeque<Integer> BD
            = new LinkedBlockingDeque<Integer>(3);
  
        // 将数字添加到BlockingDeque的末尾
        BD.put(7855642);
        BD.put(35658786);
        BD.put(5278367);
  
        // 抛出异常
        BD.put(4356789);
  
        // 打印Dequeue
        System.out.println("Blocking Deque:" + BD);
    }
}

输出 :

由于服务器负载过重或使用了sleep函数,超出了实时限制上限

参考: https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/BlockingDeque.html#put(E)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程