- 
- すべてのスーパー・インタフェース:
- AutoCloseable,- Channel,- Closeable
 - 既知のすべてのサブインタフェース:
- AsynchronousByteChannel
 
 public interface AsynchronousChannel extends Channel 非同期入出力操作をサポートするチャネル。 非同期入出力操作は通常、次の2つの形式のいずれかを取ります。- Future<V> operation(...)
- void operation(... A attachment, - CompletionHandler<V,? super A> handler)
 CompletionHandlerを使用して多数の入出力操作の結果を消費する場合、接続が重要です。最初の形式では、操作が完了したかどうかを確認し、操作の完了を待機し、結果を取得するために、 Futureインタフェースによって定義されたメソッドが使用されることがあります。 2番目の形式では、入出力操作が完了または失敗したときにその結果を消費するために、CompletionHandlerが呼び出されます。このインタフェースを実装したチャネルは非同期クローズ可能です。入出力操作がチャネルで未処理の場合に、チャネルの closeメソッドが呼び出されると、入出力操作は例外AsynchronousCloseExceptionをスローして失敗します。非同期チャネルは、複数の並行スレッドで安全に使用できます。 一部のチャネル実装では、並行読み取りおよび書込みがサポートされることがありますが、特定の時点で複数の読取り操作と書込み操作が未処理になることは許可されない場合があります。 取消しFutureインタフェースは、実行を取り消すcancelメソッドを定義します。 これによって、入出力操作の結果を待機しているすべてのスレッドがCancellationExceptionをスローします。 基本となる入出力操作を取り消すことができるかどうかは実装に大きく依存するため、指定できません。 取消しによって、チャネルまたはそのチャネルの接続先のエンティティが整合性のない状態になる場合、チャネルは、取り消された操作に似た入出力操作をそのあとに開始しないようにする、実装固有のエラー状態になります。 たとえば、読取り操作が取り消されても、バイトがチャネルから読み取られていないことを実装で保証できない場合、チャネルはエラー状態になります。そのあとでread操作の開始を試行すると、未指定のランタイム例外がスローされます。 同様に、書込み操作が取り消されても、バイトがチャネルに書き込まれていないことを実装で保証できない場合、そのあとでwriteを開始しようとしても、未指定のランタイム例外がスローされて失敗します。mayInterruptIfRunningパラメータをtrueに設定してcancelメソッドを呼び出すと、入出力操作はチャネルのクローズによって割り込まれることがあります。 その場合、入出力操作の結果を待機しているすべてのスレッドがCancellationExceptionをスローし、チャネルで未処理のその他の入出力操作はすべて、例外AsynchronousCloseExceptionをスローして完了します。読み取りまたは書込み操作を取り消すために cancelメソッドが呼び出される場合、入出力操作で使用されるすべてのバッファを破棄するか、チャネルが開いたままになっている間はバッファへのアクセスが行われないように注意することをお薦めします。- 導入されたバージョン:
- 1.7
 
- 
- 
メソッドのサマリーすべてのメソッド インスタンス・メソッド 抽象メソッド 修飾子と型 メソッド 説明 voidclose()現在のチャネルをクローズします。
 
- 
- 
- 
メソッドの詳細- 
closevoid close() throws IOException現在のチャネルをクローズします。このチャネルで未処理の非同期操作はすべて、例外 AsynchronousCloseExceptionをスローして完了します。 チャネルのクローズ後に、非同期入出力操作をさらに開始しようとすると、原因ClosedChannelExceptionですぐに終了します。それ以外の場合は、このメソッドは Channelインタフェースの指定どおりに動作します。- 定義:
- close、インタフェース- AutoCloseable
- 定義:
- close、インタフェース- Channel
- 定義:
- close、インタフェース- Closeable
- 例外:
- IOException- 入出力エラーが発生した場合
 
 
- 
 
-