AsynchronousChannelGroup Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Группирование асинхронных каналов для общего доступа к ресурсам.
[Android.Runtime.Register("java/nio/channels/AsynchronousChannelGroup", ApiSince=26, DoNotGenerateAcw=true)]
public abstract class AsynchronousChannelGroup : Java.Lang.Object
[<Android.Runtime.Register("java/nio/channels/AsynchronousChannelGroup", ApiSince=26, DoNotGenerateAcw=true)>]
type AsynchronousChannelGroup = class
inherit Object
- Наследование
- Атрибуты
Комментарии
Группирование асинхронных каналов для общего доступа к ресурсам.
Асинхронная группа каналов инкапсулирует механику, необходимую для обработки завершения операций ввода-вывода, инициированных AsynchronousChannel asynchronous channels
группой. Группа имеет связанный пул потоков, в который отправляются задачи для обработки событий ввода-вывода и отправки CompletionHandler completion-handlers
в них результата асинхронных операций, выполняемых на каналах в группе. Помимо обработки событий ввода-вывода, пуловые потоки также могут выполнять другие задачи, необходимые для поддержки выполнения асинхронных операций ввода-вывода.
Асинхронная группа каналов создается путем вызова #withFixedThreadPool withFixedThreadPool
определенных здесь методов или #withCachedThreadPool withCachedThreadPool
методов. Каналы привязаны к группе, указывая группу при создании канала. Связанный пул потоков принадлежит <><группе или эм>; завершение группы приводит к завершении работы связанного пула потоков.
Помимо групп, созданных явным образом, виртуальная машина Java поддерживает группу по умолчанию по умолчанию< на уровне <>системы или em>, созданную автоматически. Асинхронные каналы, которые не указывают группу во время строительства, привязаны к группе по умолчанию. Группа по умолчанию имеет связанный пул потоков, который создает новые потоки по мере необходимости. Группу по умолчанию можно настроить с помощью системных свойств, определенных в таблице ниже. java.util.concurrent.ThreadFactory ThreadFactory
Если группа по умолчанию не настроена, то пуловые потоки группы по умолчанию — Thread#isDaemon daemon
потоки.
<table class="striped">caption style="display:none:">System properties</caption><thead><tr><th scope="col"System property</<>th th scope=">col">description</><th/tr/thead><tbody>><<tr>< th scope="row"java.nio.channels.DefaultThreadPool.threadFactory
<>/><th td> Значение этого свойства принимается как полное имя конкретного java.util.concurrent.ThreadFactory ThreadFactory
класса.< Класс загружается с помощью загрузчика системного класса и создает экземпляр. Метод фабрики java.util.concurrent.ThreadFactory#newThread newThread
вызывается для создания каждого потока для пула потоков группы по умолчанию. Если процесс загрузки и создания экземпляра значения свойства завершается ошибкой, то во время создания группы по умолчанию возникает непредвиденная ошибка. </td/tr tr><th<>scope="row"<java.nio.channels.DefaultThreadPool.initialSize
>/th<>td<>> Значение initialSize
параметра для группы по умолчанию (см. ).#withCachedThreadPool withCachedThreadPool
Значение свойства принимается String
как представление параметра начального Integer
размера. Если значение не может быть проанализировано как Integer
непредвиденная ошибка, возникает во время создания группы по умолчанию. </td></tr></tbody></table>
"Threading"><h2 Threading</h2>>
Обработчик завершения операции ввода-вывода, инициированной на канале, привязанном к группе, гарантированно вызывается одним из пуловых потоков в группе. Это гарантирует, что обработчик завершения выполняется потоком с ожидаемым <>идентификатором< em/em>.
Когда операция ввода-вывода завершается немедленно, и инициирующий поток является одним из пуловых потоков в группе, обработчик завершения может вызываться непосредственно инициирующим потоком. Чтобы избежать переполнения стека, реализация может наложить ограничение на количество активаций в стеке потоков. Некоторые операции ввода-вывода могут запретить вызов обработчика завершения непосредственно потоком инициирования (см. раздел AsynchronousServerSocketChannel#accept(Object,CompletionHandler) accept
).
"завершение работы"><h2 Завершение работы и завершение</h2>>
Метод #shutdown() shutdown
используется для запуска упорядоченного>< завершения работы< или em> группы. Упорядоченное завершение работы помечает группу как завершение работы; Дальнейшие попытки создать канал, который привязывается к группе, вызовет ShutdownChannelGroupException
. Можно ли проверить работу группы с помощью #isShutdown() isShutdown
метода. После завершения работы группа <em>завершает< или эм> , когда все асинхронные каналы, привязанные к группе, закрыты, все активные обработчики завершения выполняются до завершения, а ресурсы, используемые группой, освобождаются. Попытка остановить или прервать потоки, выполняющие обработчики завершения, не предпринимается. Метод #isTerminated() isTerminated
используется для проверки завершения группы, а #awaitTermination awaitTermination
метод можно использовать для блокировки до завершения группы.
Этот #shutdownNow() shutdownNow
метод можно использовать для запуска принудительного <>завершения работы< или em> группы. Помимо действий, выполняемых с помощью упорядоченного завершения работы, shutdownNow
метод закрывает все открытые каналы в группе, как будто путем вызова AsynchronousChannel#close close
метода.
Добавлено в версии 1.7.
Документация по Java для java.nio.channels.AsynchronousChannelGroup
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.
Конструкторы
AsynchronousChannelGroup(AsynchronousChannelProvider) |
Инициализация нового экземпляра этого класса. |
AsynchronousChannelGroup(IntPtr, JniHandleOwnership) |
Группирование асинхронных каналов для общего доступа к ресурсам. |
Свойства
Class |
Возвращает класс среды выполнения этого |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
IsShutdown |
Группирование асинхронных каналов для общего доступа к ресурсам. |
IsTerminated |
Группирование асинхронных каналов для общего доступа к ресурсам. |
JniIdentityHashCode |
Группирование асинхронных каналов для общего доступа к ресурсам. (Унаследовано от Object) |
JniPeerMembers |
Группирование асинхронных каналов для общего доступа к ресурсам. |
PeerReference |
Группирование асинхронных каналов для общего доступа к ресурсам. (Унаследовано от Object) |
ThresholdClass |
Группирование асинхронных каналов для общего доступа к ресурсам. |
ThresholdType |
Группирование асинхронных каналов для общего доступа к ресурсам. |
Методы
AwaitTermination(Int64, TimeUnit) |
Ожидает завершения группы. |
Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
Dispose() |
Группирование асинхронных каналов для общего доступа к ресурсам. (Унаследовано от Object) |
Dispose(Boolean) |
Группирование асинхронных каналов для общего доступа к ресурсам. (Унаследовано от Object) |
Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
GetHashCode() |
Возвращает значение хэш-кода для объекта. (Унаследовано от Object) |
JavaFinalize() |
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
Notify() |
Пробуждение одного потока, ожидающего монитора этого объекта. (Унаследовано от Object) |
NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
Provider() |
Возвращает поставщик, создавший эту группу каналов. |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
Shutdown() |
Инициирует упорядоченное завершение работы группы. |
ShutdownNow() |
Завершает работу группы и закрывает все открытые каналы в группе. |
ToArray<T>() |
Группирование асинхронных каналов для общего доступа к ресурсам. (Унаследовано от Object) |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
Группирование асинхронных каналов для общего доступа к ресурсам. (Унаследовано от Object) |
Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>. (Унаследовано от Object) |
Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
WithCachedThreadPool(IExecutorService, Int32) |
Создает асинхронную группу каналов с заданным пулом потоков, который создает новые потоки по мере необходимости. |
WithFixedThreadPool(Int32, IThreadFactory) |
Создает асинхронную группу каналов с фиксированным пулом потоков. |
WithThreadPool(IExecutorService) |
Создает асинхронную группу каналов с заданным пулом потоков. |
Явные реализации интерфейса
IJavaPeerable.Disposed() |
Группирование асинхронных каналов для общего доступа к ресурсам. (Унаследовано от Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Группирование асинхронных каналов для общего доступа к ресурсам. (Унаследовано от Object) |
IJavaPeerable.Finalized() |
Группирование асинхронных каналов для общего доступа к ресурсам. (Унаследовано от Object) |
IJavaPeerable.JniManagedPeerState |
Группирование асинхронных каналов для общего доступа к ресурсам. (Унаследовано от Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Группирование асинхронных каналов для общего доступа к ресурсам. (Унаследовано от Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Группирование асинхронных каналов для общего доступа к ресурсам. (Унаследовано от Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Группирование асинхронных каналов для общего доступа к ресурсам. (Унаследовано от Object) |
Методы расширения
JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
JavaCast<TResult>(IJavaObject) |
Группирование асинхронных каналов для общего доступа к ресурсам. |
GetJniTypeName(IJavaPeerable) |
Группирование асинхронных каналов для общего доступа к ресурсам. |