Поделиться через


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
Наследование
AsynchronousChannelGroup
Атрибуты

Комментарии

Группирование асинхронных каналов для общего доступа к ресурсам.

Асинхронная группа каналов инкапсулирует механику, необходимую для обработки завершения операций ввода-вывода, инициированных 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

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
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)

Группирование асинхронных каналов для общего доступа к ресурсам.

Применяется к