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
в , которые используют результаты асинхронных операций, выполняемых с каналами в группе. Помимо обработки событий ввода-вывода, потоки в пуле могут также выполнять другие задачи, необходимые для поддержки выполнения асинхронных операций ввода-вывода.
Асинхронная группа каналов создается путем вызова методов или#withCachedThreadPool withCachedThreadPool
, #withFixedThreadPool withFixedThreadPool
определенных здесь. Каналы привязываются к группе, указывая группу при создании канала. Связанный пул потоков принадлежит <><группе em или em>. Завершение работы группы приводит к завершению работы связанного пула потоков.
Помимо групп, созданных явным образом, виртуальная машина Java поддерживает группу по умолчанию по умолчанию< для> всей <>системы, которая создается автоматически. Асинхронные каналы, не указывающие группу во время создания, привязаны к группе по умолчанию. Группа по умолчанию имеет связанный пул потоков, который создает новые потоки по мере необходимости. Группу по умолчанию можно настроить с помощью системных свойств, определенных в таблице ниже. java.util.concurrent.ThreadFactory ThreadFactory
Если для группы по умолчанию не настроен, то потоки в пуле группы по умолчанию являются Thread#isDaemon daemon
потоками.
<table class="striped">подпись style="display:none:">System properties</подпись>< thead><tr><th область="col">System property</th><th область="col">Description</th<>/tr></thead<>tbody<>tr><th< область="строка">java.nio.channels.DefaultThreadPool.threadFactory
</th><td> Значение этого свойства принимается как полное имя конкретного java.util.concurrent.ThreadFactory ThreadFactory
класса. Класс загружается с помощью системного загрузчика классов и создается экземпляр . Метод фабрики java.util.concurrent.ThreadFactory#newThread newThread
вызывается для создания каждого потока для пула потоков группы по умолчанию. Если процесс загрузки и создания экземпляра значения свойства завершается сбоем, то при создании группы по умолчанию возникает неуказаная ошибка. </td></tr<>th><область="row"java.nio.channels.DefaultThreadPool.initialSize
<>/th><td> Значение initialSize
параметра для группы по умолчанию (см#withCachedThreadPool withCachedThreadPool
. ). Значение свойства принимается как String
представление Integer
объекта , который является параметром начального размера. Если значение не может быть проанализировано как , Integer
это приводит к неуказанным ошибкам при создании группы по умолчанию. </td></tr></tbody></table>
"threading"><h2>Threading</h2>
Обработчик завершения для операции ввода-вывода, инициированной в канале, привязанном к группе, гарантированно вызывается одним из потоков в пуле в группе. Это гарантирует, что обработчик завершения запускается потоком с ожидаемым <идентификатором< или>em>.
Если операция ввода-вывода завершается немедленно, а инициирующий поток является одним из потоков в составе пула в группе, обработчик завершения может вызываться непосредственно инициирующим потоком. Чтобы избежать переполнения стека, реализация может наложить ограничение на количество активаций в стеке потоков. Некоторые операции ввода-вывода могут запретить вызов обработчика завершения непосредственно инициирующим потоком (см AsynchronousServerSocketChannel#accept(Object,CompletionHandler) accept
. ).
"shutdown"><h2>Завершение работы и завершение</h2>
Метод #shutdown() shutdown
используется для запуска упорядоченного <завершения работы или>> завершения< работы группы. Упорядоченное завершение работы помечает группу как завершение работы; Дальнейшие попытки создать канал, который привязывается к группе, вызовет исключение ShutdownChannelGroupException
. Указывает, завершается ли группа, можно проверить с помощью #isShutdown() isShutdown
метода . После завершения работы группа <завершает>работу<,> когда все асинхронные каналы, привязанные к группе, закрываются, все активно выполняющиеся обработчики завершения выполняются до завершения, а ресурсы, используемые группой, освобождаются. Попытки остановить или прервать потоки, выполняющие обработчики завершения, не предпринимаются. Метод #isTerminated() isTerminated
используется для проверки завершения работы группы, а #awaitTermination awaitTermination
метод можно использовать для блокировки до завершения работы группы.
Метод #shutdownNow() shutdownNow
можно использовать для запуска <>принудительного завершения работы< группы>. Помимо действий, выполняемых при упорядоченном завершении работы, shutdownNow
метод закрывает все открытые каналы в группе, как если бы путем вызова AsynchronousChannel#close close
метода .
Добавлено в версии 1.7.
Документация по Java для java.nio.channels.AsynchronousChannelGroup
.
Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.
Конструкторы
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() |
Вызывает ожидание текущего потока, пока он не пробудится, как правило, из-за <уведомления><<> или>прерывания или прерывания.>< (Унаследовано от Object) |
Wait(Int64) |
Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени. (Унаследовано от Object) |
Wait(Int64, Int32) |
Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени. (Унаследовано от 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) |
Группирование асинхронных каналов для совместного использования ресурсов. |