Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface AsynchronousChannel extends Channel
Future
<V> operation(...)
void operation(... A attachment, CompletionHandler
<V,? super A> handler)
CompletionHandler
используется, чтобы использовать результат многих операций ввода-вывода. В первой форме, методы, определенные Future
интерфейс может использоваться, чтобы проверить, завершилась ли работа, ожидайте ее завершения, и получать результат. Во второй форме, a CompletionHandler
вызывается, чтобы использовать результат работы ввода-вывода, когда это завершается или перестало работать.
Канал, который реализует этот интерфейс, асинхронно closeable: Если работа ввода-вывода является выдающейся на канале и канал close
метод вызывается, тогда сбои работы ввода-вывода с исключением AsynchronousCloseException
.
Асинхронные каналы безопасны для использования многократными параллельными потоками. Некоторые реализации канала могут поддерживать параллельное чтение и запись, но, возможно, не позволяют больше чем одному чтению и одной операции записи быть выдающимся в любой момент времени.
Future
интерфейс определяет cancel
метод, чтобы отменить выполнение. Это вызывает все потоки, ожидающие на результате работы ввода-вывода бросить CancellationException
. Может ли базовая работа ввода-вывода быть отменена, чрезвычайно определенная реализация и поэтому не определенный. Где листы отмены, канал, или объект, с которым это соединяется, в непоследовательном состоянии, тогда канал, помещается в реализацию определенное ошибочное состояние, которое предотвращает дальнейшие попытки инициировать операции ввода-вывода, которые подобны работе, которая была отменена. Например, если операция чтения отменяется, но реализация не может гарантировать, что байты не были считаны из канала тогда, это помещает канал в ошибочное состояние; дальнейшие попытки инициировать a read
причина работы неуказанное исключение на этапе выполнения, которое будет брошено. Точно так же, если операция записи отменяется, но реализация не может гарантировать, что байты не были записаны каналу тогда последующие попытки инициировать a write
перестанет работать с неуказанным исключением на этапе выполнения.
Где cancel
метод вызывается с mayInterruptIfRunning
набор параметра к true
тогда работа ввода-вывода может быть прервана, закрывая канал. В этом случае все потоки, ожидающие на результате броска работы ввода-вывода CancellationException
и любые другие операции ввода-вывода, выдающиеся на канале, завершаются с исключением AsynchronousCloseException
.
Где cancel
метод вызывается, чтобы отменить операции чтения или операции записи тогда, рекомендуется, чтобы все буферы, используемые в операциях ввода-вывода, были отброшены или заботились взятые, чтобы гарантировать, что к буферам не получают доступ, в то время как канал остается открытым.
void close() throws IOException
Любые выдающиеся асинхронные операции на этот канал завершатся с исключением AsynchronousCloseException
. После того, как канал закрывается, дальнейшие попытки инициировать асинхронные операции ввода-вывода, полные сразу с причиной ClosedChannelException
.
Этот метод иначе ведет себя точно как определено Channel
интерфейс.
close
в интерфейсе AutoCloseable
close
в интерфейсе Channel
close
в интерфейсе Closeable
IOException
- Если ошибка ввода-вывода происходит
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.