Java : BrokenBarrierException 示例
Java 中的 BrokenBarrierException (Java SE 23 & JDK 23) 及其示例。
您将找到大多数 BrokenBarrierException 方法的代码示例。
注解 :
- 本文可能使用了翻译软件以方便阅读。 另请查看英文原文。
简介
当线程尝试等待处于损坏状态的屏障时,或者在线程等待时进入损坏状态时抛出异常。 (机器翻译)
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
请参阅下面的链接。