- すべての実装されたインタフェース:
 Closeable,AutoCloseable,Channel,InterruptibleChannel
- 直系の既知のサブクラス:
 FileChannel,SelectableChannel
 このクラスは、チャネルの非同期クローズと非同期割込みを実装するのに必要な低レベルの機構をカプセル化しています。 具象チャネル・クラスは、無期限にブロックされる可能性のある入出力操作の呼出し前にbeginメソッドを、呼出し後にendメソッドをそれぞれ呼び出す必要があります。 endメソッドが常に呼び出されるようにするには、次のメソッドをtry ... finallyブロック内で使用する必要があります: 
 
    boolean completed = false;
    try {
        begin();
        completed = ...;    // Perform blocking I/O operation
        return ...;         // Return result
    } finally {
        end(completed);
    }
 endメソッドのcompleted引数は、I/O操作が実際に完了したかどうか、つまり、実行者に表示される効果があったかどうかを示します。 たとえば、バイトを読み取る操作の場合、この引数は、実行元のターゲット・バッファに実際に転送されたバイトのみの場合、trueにする必要があります。 
 
 具象チャネル・クラスは、implCloseChannelメソッドも実装する必要があります。その場合、チャネルに対するネイティブの入出力操作の途中でブロックされているスレッドがあるときにこのメソッドが呼び出されると、例外をスローするか通常の方法でただちに終了するように実装します。 スレッドに割込みが発生した場合や、スレッドをブロックしているチャネルが非同期でクローズされた場合、チャネルのendメソッドは該当する例外をスローします。 
 
 このクラスは、Channelの仕様を実装するのに必要な同期処理を行います。 implCloseChannelメソッドの実装では、チャネルをクローズしようとするほかのスレッドに対して同期処理を行う必要はありません。   
- 導入されたバージョン:
 - 1.4
 
- 
コンストラクタのサマリー
コンストラクタ - 
メソッドのサマリー
 
- 
コンストラクタの詳細
- 
AbstractInterruptibleChannel
protected AbstractInterruptibleChannel()このクラスの新しいインスタンスを初期化します。 
 - 
 - 
メソッドの詳細
- 
close
public final void close() throws IOException現在のチャネルをクローズします。チャネルがすでにクローズしている場合、このメソッドはただちに終了します。 それ以外の場合は、チャネルのクローズをマークしてから、クローズ操作を完了するために
implCloseChannelメソッドを呼び出します。- 定義:
 close、インタフェースAutoCloseable- 定義:
 close、インタフェースChannel- 定義:
 close、インタフェースCloseable- 定義:
 close、インタフェースInterruptibleChannel- 例外:
 IOException- 入出力エラーが発生した場合
 - 
implCloseChannel
protected abstract void implCloseChannel() throws IOException現在のチャネルをクローズします。このメソッドは、チャネルをクローズする実際の処理を実行するために
closeメソッドによって呼び出されます。 このメソッドは、チャネルがまだクローズしていない場合にのみ呼び出され、2回以上呼び出されることはありません。このメソッドの実装は、このチャネルに対する入出力操作の途中でブロックされるその他のスレッドを、例外をスローするか、通常の方法を使ってただちに終了させることになっています。
- 例外:
 IOException- チャネルのクローズ中に入出力エラーが発生した場合
 - 
isOpen
 - 
begin
 - 
end
protected final void end(boolean completed) throws AsynchronousCloseException 無期限にブロックされる入出力操作の終了をマークします。このメソッドは、このチャネルの非同期のクローズおよび中断を実装するために、aboveに示すように
try...finallyブロックを使用してbeginメソッドと並行して起動する必要があります。- パラメータ:
 completed-trueは、I/O操作が正常に完了した場合、つまり、操作の実行者に表示されるなんらかの影響があった場合にのみ行います- 例外:
 AsynchronousCloseException- チャネルが非同期クローズされた場合ClosedByInterruptException- 入出力操作中にブロックされたスレッドに割込みが発生した場合
 
 -