public interface InterruptibleChannel extends Channel
このインタフェースを実装したチャネルは非同期クローズ可能です。割込み可能なチャネルの入出力操作中にブロックされたスレッドがある場合、別のスレッドはそのチャネルのclose
メソッドを呼び出すことができます。これによって、ブロックされたスレッドがAsynchronousCloseException
を受け取ります。
このインタフェースを実装したチャネルは割込み可能でもあります。割込み可能なチャネルの入出力操作中にブロックされたスレッドがある場合、別のスレッドはブロックされたスレッドのinterrupt
メソッドを呼び出すことができます。これによってチャネルがクローズし、ブロックされたスレッドがClosedByInterruptException
を受け取ります。続いて、ブロックされたスレッドの割込みステータスが設定されます。
スレッドの割込みステータスがすでに設定されている状態で、チャネル上でブロック入出力操作を呼び出した場合、チャネルはクローズし、スレッドは即座にClosedByInterruptException
を受け取ります。このときも、割込みステータスは設定されたままです。
チャネルは、このインタフェースを実装している場合にかぎり、非同期クローズと割込みをサポートします。必要な場合は、instanceof演算子を使って実行時にテストすることができます。
修飾子と型 | メソッドと説明 |
---|---|
void |
close()
現在のチャネルをクローズします。
|
void close() throws IOException
現在このチャネルの入出力操作でブロックされているすべてのスレッドがAsynchronousCloseException
を受け取ります。
それ以外の場合は、このメソッドはChannel
インタフェースの指定どおりに動作します。
close
、インタフェース: AutoCloseable
close
、インタフェース: Channel
close
、インタフェース: Closeable
IOException
- 入出力エラーが発生した場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.