Класс AsynchronousChannelProvider
- java.lang.Object
-
- java.nio.channels.spi.AsynchronousChannelProvider
public abstract class AsynchronousChannelProvider extends Object
Класс-поставщик услуг для асинхронных каналов.
Поставщик асинхронных каналов — это конкретный подкласс этого класса, имеющий конструктор без аргументов и реализующий абстрактные методы, указанные ниже. В данном вызове виртуальной машины Java поддерживается единственный глобальный экземпляр поставщика по умолчанию, который возвращается методом provider. Первый вызов этого метода будет искать поставщика по умолчанию, как указано ниже.
Все методы этого класса безопасны для использования в нескольких потоках одновременно.
- С момента:
- 1.7
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | AsynchronousChannelProvider() | Инициализирует новый экземпляр этого класса. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract AsynchronousChannelGroup | openAsynchronousChannelGroup(int nThreads,
ThreadFactory threadFactory) | Создаёт новую асинхронную группу каналов с фиксированным пулом потоков. |
abstract AsynchronousChannelGroup | openAsynchronousChannelGroup(ExecutorService executor,
int initialSize) | Создаёт новую асинхронную группу каналов с заданным пулом потоков. |
abstract AsynchronousServerSocketChannel | openAsynchronousServerSocketChannel(AsynchronousChannelGroup group) | Открывает асинхронный канал серверного сокета. |
abstract AsynchronousSocketChannel | openAsynchronousSocketChannel(AsynchronousChannelGroup group) | Открывает асинхронный сокет-канал. |
static AsynchronousChannelProvider | provider() | Возвращает глобального поставщика асинхронных каналов по умолчанию для данного вызова виртуальной машины Java. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitКонструкторы
AsynchronousChannelProvider
protected AsynchronousChannelProvider()
Инициализирует новый экземпляр этого класса.
- Исключения:
-
SecurityException- Если установлен менеджер безопасности и он запрещаетRuntimePermission("asynchronousChannelProvider")
Методы
provider
public static AsynchronousChannelProvider provider()
Возвращает глобального поставщика асинхронных каналов по умолчанию для данного вызова виртуальной машины Java.
Первый вызов этого метода находит объект поставщика по умолчанию следующим образом:
Если определён системный параметр
java.nio.channels.spi.AsynchronousChannelProvider, то он рассматривается как полное имя класса конкретного поставщика. Класс загружается и создаётся; если этот процесс завершается неудачно, выбрасывается неопределённая ошибка.Если класс поставщика был установлен в файле jar, видимом для загрузчика системного класса, и этот файл jar содержит файл конфигурации поставщика с именем
java.nio.channels.spi.AsynchronousChannelProviderв каталоге ресурсовMETA-INF/services, то первым именем класса, указанным в этом файле, будет использоваться. Класс загружается и создаётся; если этот процесс завершается неудачно, выбрасывается неопределённая ошибка.Наконец, если поставщик не был указан ни одним из вышеперечисленных способов, то создаётся класс системного поставщика по умолчанию, и результат возвращается.
Последующие вызовы этого метода возвращают поставщика, который был возвращён при первом вызове.
- Возвращает:
- Глобальный поставщик асинхронных каналов по умолчанию
openAsynchronousChannelGroup
public abstract AsynchronousChannelGroup openAsynchronousChannelGroup(int nThreads,
ThreadFactory threadFactory)
throws IOExceptionСоздаёт новую асинхронную группу каналов с фиксированным пулом потоков.
- Параметры:
-
nThreads- Количество потоков в пуле -
threadFactory- Фабрика для создания новых потоков - Возвращает:
- Новая асинхронная группа каналов
- Исключения:
-
IllegalArgumentException- ЕслиnThreads <= 0 -
IOException- Если произошла ошибка ввода-вывода - См. также:
AsynchronousChannelGroup.withFixedThreadPool(int, java.util.concurrent.ThreadFactory)
openAsynchronousChannelGroup
public abstract AsynchronousChannelGroup openAsynchronousChannelGroup(ExecutorService executor,
int initialSize)
throws IOExceptionСоздаёт новую асинхронную группу каналов с заданным пулом потоков.
- Параметры:
-
executor- Пул потоков -
initialSize- Значение>=0или отрицательное значение для реализации специфичного значения по умолчанию - Возвращает:
- Новая асинхронная группа каналов
- Исключения:
-
IOException- Если произошла ошибка ввода-вывода - См. также:
AsynchronousChannelGroup.withCachedThreadPool(java.util.concurrent.ExecutorService, int)
openAsynchronousServerSocketChannel
public abstract AsynchronousServerSocketChannel openAsynchronousServerSocketChannel(AsynchronousChannelGroup group)
throws IOExceptionОткрывает асинхронный канал серверного сокета.
- Параметры:
-
group- Группа, к которой привязан канал, илиnullдля привязки к группе по умолчанию - Возвращает:
- Новый канал
- Исключения:
-
IllegalChannelGroupException- Если поставщик, создавший группу, отличается от этого поставщика -
ShutdownChannelGroupException- Группа закрыта -
IOException- Если произошла ошибка ввода-вывода
openAsynchronousSocketChannel
public abstract AsynchronousSocketChannel openAsynchronousSocketChannel(AsynchronousChannelGroup group)
throws IOExceptionОткрывает асинхронный сокет-канал.
- Параметры:
-
group- Группа, к которой привязан канал, илиnullдля привязки к группе по умолчанию - Возвращает:
- Новый канал
- Исключения:
-
IllegalChannelGroupException- Если поставщик, создавший группу, отличается от этого поставщика -
ShutdownChannelGroupException- Группа закрыта -
IOException- Если произошла ошибка ввода-вывода
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/channels/spi/AsynchronousChannelProvider.html