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) |
Группирование асинхронных каналов для общего доступа к ресурсам. |