Método LinkedTransferQueue tryTransfer() en Java con ejemplos

El método tryTransfer() de la clase LinkedTransferQueue es una función incorporada en Java que generalmente se usa para transferir un elemento a un subproceso que está esperando recibirlo, si en caso de que no haya un subproceso esperando, terminará sin agregar elementos a la cola. o también puede hacer que espere cierta cantidad de tiempo pasando la cantidad de tiempo y sus unidades como parámetro a la función.
En la clase LinkedTransferQueue, hay dos tipos de métodos tryTransfer() según los parámetros que se le pasan.
 

TryTransfer (E e)

Generalmente se usa para transferir un elemento a un subproceso que está en estado de espera, si en caso de que no haya un subproceso en espera, terminará sin agregar el elemento a la cola 
Sintaxis: 
 

public boolean tryTransfer(E e)

Parámetro: 
 

  • Aquí E e es el elemento que se transferirá al hilo que está en estado de espera.

Valor devuelto: este método devolverá un valor booleano , es decir, verdadero si el elemento se transfirió, de lo contrario, falso.
Excepción : este método generará las siguientes excepciones. 
 

  • NullPointerException : si el elemento especificado es nulo
  • InterruptedException : si se interrumpe mientras espera, en cuyo caso el elemento no se deja en la cola.

Los siguientes programas ilustran el método simple LinkedTransferQueue.tryTransfer() en Java:
Programa 1: Para ilustrar el método tryTransfer() en Java. 
 

Java

// Java program to demonstrate
// the tryTransfer() Method.
 
import java.util.*;
import java.util.concurrent.*;
 
class GFG {
    public static void main(String args[])
    {
 
        // creating an object
        // for class LinkedTransferQueue
        LinkedTransferQueue<String> g
            = new LinkedTransferQueue<String>();
 
        new Thread(new Runnable() {
 
            public void run()
            {
 
                try {
 
                    System.out.println("transferring an element");
 
                    // calling tryTransfer() method
                    // to transfer the string
                    g.tryTransfer("is a computer science portal.");
 
                    System.out.println("element transfer is complete");
                }
 
                catch (NullPointerException e2) {
 
                    System.out.println(e2);
                    System.exit(0);
                }
            }
        }).start();
 
        try {
 
            // here the thread is waiting
            // to receive an element.
            System.out.println("Geeks for Geeks "
                               + g.take());
        }
 
        catch (Exception e) {
            System.out.println(e);
        }
    }
}
Producción: 

transferring an element
element transfer is complete
Geeks for Geeks is a computer science portal.

 

Programa 2: NullPointerException. 
 

Java

// Java program to demonstrate NullPointerException
// thrown by the tryTransfer() Method.
 
import java.util.*;
import java.util.concurrent.*;
 
class GFG {
    public static void main(String args[])
    {
 
        // create a LinkedTransferQueue object
        LinkedTransferQueue<String> g
            = new LinkedTransferQueue<String>();
 
        new Thread(new Runnable() {
 
            public void run()
            {
 
                try {
                    System.out.println("transferring an element");
 
                    // calling tryTransfer() method
                    // to transfer the null element
                    g.tryTransfer(null);
 
                    System.out.println("element transfer is complete");
                }
 
                catch (NullPointerException e2) {
 
                    System.out.println(e2);
                    System.exit(0);
                }
            }
        }).start();
 
        try {
 
            System.out.println("Geeks for Geeks " + g.take());
 
            // here the thread is waiting
            // to receive an element.
        }
        catch (Exception e) {
 
            System.out.println(e);
            System.exit(0);
        }
    }
}
Producción: 

transferring an element
java.lang.NullPointerException

 

tryTransfer(E e, tiempo de espera largo, Unidad de tiempo)

Generalmente se usa para transferir un elemento a un subproceso que está en estado de espera, si en caso de que no haya un subproceso en espera, espera una cierta cantidad de tiempo pasando la cantidad de tiempo y sus unidades como parámetro a la función.
Sintaxis: 
 

public boolean tryTransfer(E e, long timeout, TimeUnit)

Parámetro: Este método acepta tres parámetros obligatorios: 
 

  • Aquí E e es el elemento que se transferirá al hilo que está en estado de espera.
  • Aquí tiempo de espera largo es el tiempo que especifica la cantidad de tiempo que debe esperar antes de terminar.
  • Aquí , la unidad TimeUnit significa la unidad de tiempo de espera prolongado.

Valor de retorno: este método devolverá un valor booleano . Devuelve verdadero si el elemento fue transferido, de lo contrario, falso.
Excepción : este método generará las siguientes excepciones. 
 

  • NullPointerException : si el elemento especificado es nulo
  • InterruptedException : si se interrumpe mientras espera, en cuyo caso el elemento no se deja en la cola.

Programa 1: Para ilustrar el método tryTransfer() en Java configurando la espera como su parámetro.
 

Java

// Java program to demonstrate
// the tryTransfer() Method.
 
import java.util.*;
import java.util.concurrent.*;
 
class GFG {
    public static void main(String args[])
    {
 
        // creating an object for LinkedTransferQueue
        LinkedTransferQueue<String> g
            = new LinkedTransferQueue<String>();
 
        new Thread(new Runnable() {
 
            public void run()
            {
                try {
 
                    System.out.println("transferring an element");
 
                    // calling tryTransfer() method passing amount
                    // of time and its units as the parameter
                    // to the function and storing
                    // its return value in a boolean variable.
                    boolean a = g.tryTransfer(
                        "is a computer science portal.",
                        2000,
                        TimeUnit.MILLISECONDS);
 
                    if (a)
                        System.out.println("element transfer is complete");
                    else
                        System.out.println("element is not transferred ");
                }
                catch (NullPointerException e2) {
                    System.out.println(e2);
                }
                catch (InterruptedException e3) {
                    System.out.println(e3);
                }
            }
        }).start();
 
        try {
 
            // here thread is made inactive or sleep
            // for 2000 milliseconds
            Thread.sleep(2000);
 
            // here the thread is ready to receive
            System.out.println("Geeks for Geeks " + g.take());
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}
Producción: 

transferring an element
Geeks for Geeks is a computer science portal.
element transfer is complete

 

Programa 2: NullPointerException. 
 

Java

// Java program to demonstrate NullPointerException
// thrown by the tryTransfer() Method.
 
import java.util.*;
import java.util.concurrent.*;
 
class GFG {
    public static void main(String args[])
    {
        // creating an object
        // for class LinkedTransferQueue
        LinkedTransferQueue<String> g
            = new LinkedTransferQueue<String>();
 
        new Thread(new Runnable() {
 
            public void run()
            {
                try {
                    System.out.println("transferring an element");
 
                    // calling tryTransfer() method
                    // to transfer the null element
                    g.tryTransfer(null, 2000, TimeUnit.MILLISECONDS);
 
                    System.out.println("element transfer is complete");
                }
                catch (NullPointerException e2) {
                    System.out.println(e2);
                    System.exit(0);
                }
                catch (InterruptedException e3) {
                    System.out.println(e3);
                }
            }
        }).start();
 
        try {
 
            // here thread is made inactive or sleep
            // for 2000 milliseconds
            Thread.sleep(2000);
 
            // here the thread is ready to receive
            System.out.println("Geeks for Geeks "
                               + g.take());
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}
Producción: 

transferring an element
java.lang.NullPointerException

 

Referencias: 
 

Publicación traducida automáticamente

Artículo escrito por suman_ptnl 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 *