Java : InterruptedException (割込み例外) - API使用例
InterruptedException (Java SE 21 & JDK 21) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様書のおともにどうぞ。
概要
スレッドA、スレッドB があるとします。
スレッドA が待ち(wati) 状態のときに、スレッドBからスレッドAに対して割り込み(interrupt) すると、スレッドA で InterruptedException が発生して待ち状態が解除されます。
InterruptedException が発生すると、割り込みステータスはクリアされます。
その点はご注意ください。
try (final var executor = Executors.newSingleThreadExecutor()) {
System.out.println("-- submit --");
final var future = executor.submit(() -> {
try {
System.out.println("sleep ...");
TimeUnit.SECONDS.sleep(5);
} catch (InterruptedException e) {
System.out.println("InterruptedException!");
}
});
TimeUnit.SECONDS.sleep(1);
System.out.println("-- interrupt --");
future.cancel(true);
}
// 結果
// ↓
//-- submit --
//sleep ...
//-- interrupt --
//InterruptedException!
コンストラクタ
InterruptedException ()
final var e = new InterruptedException();
System.out.println(e); // java.lang.InterruptedException
InterruptedException (String s)
final var e = new InterruptedException("abcd");
System.out.println(e); // java.lang.InterruptedException: abcd
Throwableで宣言されたメソッド
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
「Java API 使用例 : Throwable」をご参照ください。
関連記事
- API 使用例
- BlockingQueue (ブロッキング・キュー)
- Callable
- CancellationException
- ConcurrentHashMap.KeySetView (並列処理用セット)
- ConcurrentLinkedDeque (並列処理用・両端キュー)
- ConcurrentLinkedQueue (並列処理用キュー)
- ConcurrentMap (並列処理用マップ)
- ConcurrentModificationException (並列処理例外)
- ConcurrentSkipListSet (並列処理用セット)
- Condition (同期)
- CopyOnWriteArrayList (並列処理用リスト)
- CopyOnWriteArraySet (並列処理用セット)
- CountDownLatch (同期)
- CyclicBarrier (同期)
- Exchanger (同期)
- Executor
- ExecutorService
- Executors
- Future
- Future.State
- FutureTask
- Lock (同期)
- Object (オブジェクト)
- Runnable
- Semaphore (セマフォ)
- Thread (スレッド)
- ThreadGroup
- ThreadLocal
- TimeUnit