インタフェースInterruptibleChannel

すべてのスーパー・インタフェース:
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を受信し、ブロックされたスレッドの中断ステータスが設定されます。

スレッドの割り込みステータスがすでに設定されていて、チャネル上でブロックしている I/O操作を呼び出すと、チャネルは閉じられ、スレッドはただちに ClosedByInterruptExceptionを受信し、その割り込みステータスは設定されたままになります。

チャネルは、このインタフェースを実装している場合にかぎり、非同期クローズと割込みをサポートします。 これは、instanceof演算子を使用して、必要に応じて実行時にテストできます。

導入されたバージョン:
1.4
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    現在のチャネルをクローズします。

    インタフェースChannelで宣言されたメソッド

    isOpen
    修飾子と型
    メソッド
    説明
    boolean
    現在のチャネルの状態がオープンであるかどうかを判断します。
  • メソッドの詳細

    • close

      void close() throws IOException
      現在のチャネルをクローズします。

      現在このチャネルの入出力操作でブロックされているすべてのスレッドがAsynchronousCloseExceptionを受け取ります。

      それ以外の場合は、このメソッドはChannelインタフェースの指定どおりに動作します。

      定義:
      close、インタフェースAutoCloseable
      定義:
      close、インタフェースChannel
      定義:
      close、インタフェースCloseable
      スロー:
      IOException - 入出力エラーが発生した場合