报价(E、长超时、时间单位)
这个 报价(E、长超时、时间单位) 方法 JAVAutil。同时发生的链接传输队列 类是Java中的一个内置函数,如果队列未满,它会在队列末尾插入作为参数传递给方法的元素。
- 如果LinkedTransferQueue已满,它将等待指定的时间,等待空间变为可用。
- 指定的等待时间和时间单位将作为参数提供给offer方法,因此它将等待到该时间,以便LinkedTransferQueue删除一些元素,以便offer方法可以向LinkedTransferQueue添加元素。
语法:
public boolean offer(E e, long timeout, TimeUnit unit)
参数: 该函数接受以下参数:
- E –要插入的元件。
- 暂停
- 单元 –确定如何解释超时参数的时间单位
返回值: 该方法返回一个布尔值 符合事实的 .由于队列是无界的,此方法将永远不会阻塞或返回false。
例外情况: 函数显示 空指针异常 当指定的元素为空时。
下面的程序演示了java的使用。util。同时发生的LinkedTransferQueue。报价():
项目1: 使用offer(E,long timeout,TimeUnit)方法插入学生姓名,创建LinkedTransferQueue,该方法的TimeUnit参数以秒为单位,timeout参数为5秒
// Java Program Demonstrate offer() // method of LinkedTransferQueue import java.util.concurrent.*; class GFG { public static void main(String[] args) throws InterruptedException { // create object of LinkedTransferQueue LinkedTransferQueue<Integer> queue = new LinkedTransferQueue<Integer>(); // Add 5 elements to ArrayBlockingQueue having // Timeout in seconds with value 5 secs in // offer(Element e, long timeout, TimeUnit unit) System.out.println( "adding 15 " + queue.offer( 15 , 5 , TimeUnit.SECONDS)); System.out.println( "adding 25: " + queue.offer( 25 , 5 , TimeUnit.SECONDS)); System.out.println( "adding 35: " + queue.offer( 35 , 5 , TimeUnit.SECONDS)); System.out.println( "adding 45: " + queue.offer( 45 , 5 , TimeUnit.SECONDS)); System.out.println( "adding 55: " + queue.offer( 55 , 5 , TimeUnit.SECONDS)); // print the elements of queue System.out.println( "list of numbers of queue: " + queue); } } |
adding 15 true adding 25: true adding 35: true adding 45: true adding 55: true list of numbers of queue: [15, 25, 35, 45, 55]
项目2: 用于显示NullPointerException的程序。
// Java Program Demonstrate offer() // method of LinkedTransferQueue import java.util.concurrent.*; class GFG { public static void main(String[] args) throws InterruptedException { // Initializing the queue LinkedTransferQueue<Integer> queue = new LinkedTransferQueue<Integer>(); // add elements to queue try { queue.offer( null , 5 , TimeUnit.SECONDS); } catch (Exception e) { System.out.println( "Exception: " + e); } } } |
Exception: java.lang.NullPointerException
报价(E)
这个 报价(E) 方法 JAVAutil。同时发生的链接传输队列 类是Java中的一个内置函数,如果队列有空间,即队列未满,它会将元素e作为参数插入到这个LinkedTransferQueue尾部的方法中。如果队列已满,则应用offer()方法不会显示任何效果,因为LinkedTransferQueue将阻止要插入的元素。当添加到LinkedTransferQueue的操作成功时,offer()方法返回true;如果此队列已满,则返回false。此方法优于add()方法,因为add方法在队列已满时抛出错误,但在这种情况下offer()方法返回false。
语法:
public boolean offer(E e)
参数: 该函数只接受一个参数 E i、 e.要插入的元素。
返回值: 该方法返回 符合事实的 成功插入后。
例外情况: 函数显示 空指针异常 当指定的元素为空时。
项目1: 正在队列中添加字符串。
// Java Program Demonstrate offer() // method of LinkedTransferQueue import java.util.concurrent.*; class GFG { public static void main(String[] args) { // Initializing the queue LinkedTransferQueue<String> queue = new LinkedTransferQueue<String>(); // Adding elements to this queue queue.offer( "alex" ); queue.offer( "bob" ); queue.offer( "chuck" ); queue.offer( "drake" ); queue.offer( "eric" ); // Printing the elements of the queue System.out.print( "Queue: " ); for (String i : queue) System.out.print(i + " " ); } } |
Queue: alex bob chuck drake eric
项目2: 用于显示NullPointerException的程序。
// Java Program Demonstrate offer() // method of LinkedTransferQueue import java.util.concurrent.LinkedTransferQueue; class GFG { public static void main(String[] args) throws InterruptedException { // Initializing the queue LinkedTransferQueue<Integer> queue = new LinkedTransferQueue<Integer>(); // add elements to queue queue.offer( 10 ); queue.offer( 20 ); queue.offer( 30 ); try { queue.offer( null ); } catch (Exception e) { System.out.println( "Exception: " + e); } } } |
Exception: java.lang.NullPointerException
参考: https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/LinkedTransferQueue.html#offer(E) https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/LinkedTransferQueue.html#offer(E,%20long,%20java.util.concurrent.TimeUnit)