Java : BrokenBarrierException 示例

Java 中的 BrokenBarrierException (Java SE 23 & JDK 23) 及其示例。
您将找到大多数 BrokenBarrierException 方法的代码示例。

注解 :

  • 本文可能使用了翻译软件以方便阅读。 另请查看英文原文

简介

当线程尝试等待处于损坏状态的屏障时,或者在线程等待时进入损坏状态时抛出异常。 (机器翻译)

Class diagram

final var barrier = new CyclicBarrier(3);
System.out.println("parties = " + barrier.getParties());

try (final var executor = Executors.newFixedThreadPool(3)) {

    final var futureA = executor.submit(() -> {
        try {
            System.out.println("A : task start");
            barrier.await();
        } catch (InterruptedException | BrokenBarrierException e) {
            System.out.println("A : " + e.getClass().getSimpleName());
        }
    });

    TimeUnit.SECONDS.sleep(1);

    executor.submit(() -> {
        try {
            System.out.println("B : task start");
            barrier.await();
        } catch (InterruptedException | BrokenBarrierException e) {
            System.out.println("B : " + e.getClass().getSimpleName());
        }
    });

    TimeUnit.SECONDS.sleep(1);

    System.out.println("task A cancel!");

    final var ret = futureA.cancel(true);
    System.out.println("cancelled = " + ret);
}

// Result
// ↓
//parties = 3
//A : task start
//B : task start
//task A cancel!
//A : InterruptedException
//B : BrokenBarrierException
//cancelled = true

Constructors

BrokenBarrierException ()

构造一个没有指定详细消息的 BrokenBarrierException。 (机器翻译)

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

BrokenBarrierException (String message)

使用指定的详细消息构造一个 BrokenBarrierException。 (机器翻译)

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

Methods declared in Throwable

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

请参阅下面的链接。


相关文章

To top of page