Java : TimeoutException (Thread) con ejemplos

TimeoutException (Java SE 23 & JDK 23) en Java con ejemplos.
Encontrará muestras de código para la mayoría de los métodos TimeoutException.

Nota :


Summary

Se lanza una excepción cuando se agota el tiempo de espera de una operación de bloqueo. Las operaciones de bloqueo con un tiempo de espera especificado necesitan un medio para indicar que se ha agotado. Muchas de estas operaciones pueden devolver un valor que indica el tiempo de espera; si esto no es posible o deseable, se debe declarar y lanzar una excepción TimeoutException. (Traducción automática)

Class diagram

try (final var executorService = Executors.newSingleThreadExecutor()) {
    final var future = executorService.submit(() -> {
        try {
            System.out.println("task start");
            TimeUnit.SECONDS.sleep(3);

            return "abcd";
        } catch (InterruptedException e) {
            System.out.println("Interrupted!");
            return null;
        } finally {
            System.out.println("task end");
        }
    });

    TimeUnit.SECONDS.sleep(1);

    try {
        System.out.println("-- get start --");
        final var ret = future.get(1, TimeUnit.SECONDS);

        System.out.println("-- get end --");
        System.out.println("ret = " + ret);
    } catch (TimeoutException e) {
        System.out.println("TimeoutException!");
    }
}

// Result
// ↓
//task start
//-- get start --
//TimeoutException!
//task end

Constructors

TimeoutException ()

Construye una TimeoutException sin ningún mensaje de detalle especificado. (Traducción automática)

final var e = new TimeoutException();
System.out.println(e); // java.util.concurrent.TimeoutException

TimeoutException (String message)

Construye una TimeoutException con el mensaje de detalle especificado. (Traducción automática)

final var e = new TimeoutException("abc");
System.out.println(e); // java.util.concurrent.TimeoutException: abc
System.out.println(e.getMessage()); // abc

Methods declared in Throwable

addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString

Consulte el siguiente enlace.


Related posts

To top of page