Java中的LinkedTransferQueue offer()方法

报价(E、长超时、时间单位)

这个 报价(E、长超时、时间单位) 方法 JAVAutil。同时发生的链接传输队列 类是Java中的一个内置函数,如果队列未满,它会在队列末尾插入作为参数传递给方法的元素。

null
  • 如果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)

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享