Método de oferta de LinkedTransferQueue() en Java

oferta (E e, tiempo de espera prolongado, unidad TimeUnit)

El método de oferta (E e, tiempo de espera largo, unidad de unidad de tiempo) de java.util.concurrent.LinkedTransferQueue Class es una función incorporada en Java que inserta el elemento pasado como parámetro al método al final de esta cola, si la cola no es completo.

  • Esperará hasta un tiempo específico para que haya espacio disponible si LinkedTransferQueue está lleno.
  • El tiempo de espera especificado y TimeUnit para el tiempo se proporcionarán como parámetros para el método de oferta, por lo que esperará hasta ese momento para que LinkedTransferQueue elimine algunos elementos para que el método de oferta pueda agregar elementos a LinkedTransferQueue.

Sintaxis:

public boolean offer(E e, long timeout, TimeUnit unit)

Parámetros: La función acepta los siguientes parámetros:

  • e – el elemento a insertar.
  • se acabó el tiempo
  • unidad : una unidad de tiempo que determina cómo interpretar el parámetro de tiempo de espera

Valor devuelto: el método devuelve un valor booleano verdadero . Como la cola no tiene límites, este método nunca bloqueará ni devolverá falso.

Excepción: la función muestra NullPointerException cuando el elemento especificado es nulo.

Los siguientes programas ilustran el uso de java.util.concurrent.LinkedTransferQueue.offer() :

Programa 1: Para crear LinkedTransferQueue insertando los nombres de los estudiantes usando el método de oferta (E e, tiempo de espera largo, unidad de unidad de tiempo) cuyo parámetro de unidad de tiempo se proporciona en segundos y el parámetro de tiempo de espera es 5 segundos

// 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);
    }
}
Producción:

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]

Programa 2: Programa para mostrar 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);
        }
    }
}
Producción:

Exception: java.lang.NullPointerException

oferta(E e)

El método de oferta (E e) de java.util.concurrent.LinkedTransferQueue Class es una función integrada en Java que inserta el elemento e pasado como parámetro al método al final de esta LinkedTransferQueue si la cola tiene espacio, es decir, la cola no está llena. Si la cola está llena, la aplicación del método de oferta() no muestra ningún efecto porque LinkedTransferQueue bloqueará el elemento que se insertará. El método de oferta() devuelve verdadero cuando la operación de adición a LinkedTransferQueue es exitosa y falso si esta cola está llena. Este método es preferible al método add() porque el método add arroja un error cuando la cola está llena, pero el método offer() devuelve falso en tal situación.

Sintaxis:

public boolean offer(E e)

Parámetros: La función acepta un único parámetro, es decir, el elemento a insertar.

Valor devuelto: el método devuelve verdadero después de una inserción exitosa.

Excepción: la función muestra NullPointerException cuando el elemento especificado es nulo.

Programa 1: Adición de strings en la cola.

// 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 + " ");
    }
}
Producción:

Queue: alex bob chuck drake eric

Programa 2: Programa para mostrar 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);
        }
    }
}
Producción:

Exception: java.lang.NullPointerException

Referencia: 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)

Publicación traducida automáticamente

Artículo escrito por rupesh_rao y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *