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

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

Возвращает класс среды выполнения данного объекта 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()

Вызывает ожидание текущего потока, пока он не пробудится, как правило, из-за <уведомления><<> или>прерывания или прерывания.><

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

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

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