- すべてのスーパー・インタフェース:
- AutoCloseable,- Channel,- Closeable
- 既知のすべての実装クラス:
- AbstractInterruptibleChannel,- AbstractSelectableChannel,- DatagramChannel,- FileChannel,- Pipe.SinkChannel,- Pipe.SourceChannel,- SctpChannel,- SctpMultiChannel,- SctpServerChannel,- SelectableChannel,- ServerSocketChannel,- SocketChannel
public interface InterruptibleChannel extends Channel
非同期のクローズや割込みが可能なチャネルです。
 
 このインタフェースを実装したチャネルは非同期クローズ可能です。割込み可能なチャネルの入出力操作中にブロックされたスレッドがある場合、別のスレッドはそのチャネルのcloseメソッドを呼び出すことができます。 これによって、ブロックされたスレッドがAsynchronousCloseExceptionを受け取ります。 
 
 このインタフェースを実装したチャネルは割込み可能でもあります。割込み可能なチャネルの入出力操作中にブロックされたスレッドがある場合、別のスレッドはブロックされたスレッドのinterruptメソッドを呼び出すことができます。 これによってチャネルがクローズし、ブロックされたスレッドがClosedByInterruptExceptionを受け取ります。続いて、ブロックされたスレッドの割込みステータスが設定されます。 
 
 スレッドの割込みステータスがすでに設定されている状態で、チャネル上でブロック入出力操作を呼び出した場合、チャネルはクローズし、スレッドは即座にClosedByInterruptExceptionを受け取ります。このときも、割込みステータスは設定されたままです。
 
 チャネルは、このインタフェースを実装している場合にかぎり、非同期クローズと割込みをサポートします。 必要な場合は、instanceof演算子を使って実行時にテストすることができます。 
- 導入されたバージョン:
- 1.4
- 
メソッドのサマリー修飾子と型 メソッド 説明 voidclose()現在のチャネルをクローズします。
- 
メソッドの詳細- 
closevoid close() throws IOException現在のチャネルをクローズします。現在このチャネルの入出力操作でブロックされているすべてのスレッドが AsynchronousCloseExceptionを受け取ります。それ以外の場合は、このメソッドは Channelインタフェースの指定どおりに動作します。- 定義:
- close、インタフェース:- AutoCloseable
- 定義:
- close、インタフェース:- Channel
- 定義:
- close、インタフェース:- Closeable
- 例外:
- IOException- 入出力エラーが発生した場合
 
 
-