java.lang.Object
java.nio.channels.spi.AsynchronousChannelProvider
异步通道的服务提供者类。
异步通道提供者是这个类的具体子类,具有零参数构造函数并实现下面指定的抽象方法。Java虚拟机的每次调用维护一个单一的系统范围默认提供者实例,该实例由provider
方法返回。该方法的第一次调用将按照下面指定的方式定位默认提供者。
这个类中的所有方法都可以安全地被多个并发线程使用。
- 自从:
- 1.7
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract AsynchronousChannelGroup
openAsynchronousChannelGroup
(int nThreads, ThreadFactory threadFactory) 使用固定线程池构造一个新的异步通道组。abstract AsynchronousChannelGroup
openAsynchronousChannelGroup
(ExecutorService executor, int initialSize) 使用给定的线程池构造一个新的异步通道组。abstract AsynchronousServerSocketChannel
打开一个异步服务器套接字通道。abstract AsynchronousSocketChannel
打开一个异步套接字通道。static AsynchronousChannelProvider
provider()
返回此Java虚拟机调用的系统范围默认异步通道提供者。
-
Constructor Details
-
AsynchronousChannelProvider
protected AsynchronousChannelProvider()初始化此类的新实例。- 抛出:
-
SecurityException
- 如果安装了安全管理器并且拒绝了RuntimePermission
("asynchronousChannelProvider")
-
-
Method Details
-
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
- 如果发生I/O错误 - 参见:
-
openAsynchronousChannelGroup
public abstract AsynchronousChannelGroup openAsynchronousChannelGroup(ExecutorService executor, int initialSize) throws IOException 使用给定的线程池构造一个新的异步通道组。- 参数:
-
executor
- 线程池 -
initialSize
- 一个值>=0
或一个负值表示实现特定默认值 - 返回:
- 一个新的异步通道组
- 抛出:
-
IOException
- 如果发生I/O错误 - 参见:
-
openAsynchronousServerSocketChannel
public abstract AsynchronousServerSocketChannel openAsynchronousServerSocketChannel(AsynchronousChannelGroup group) throws IOException 打开一个异步服务器套接字通道。- 参数:
-
group
- 通道绑定的组,或null
表示绑定到默认组 - 返回:
- 新通道
- 抛出:
-
IllegalChannelGroupException
- 如果创建组的提供者与此提供者不同 -
ShutdownChannelGroupException
- 组已关闭 -
IOException
- 如果发生I/O错误
-
openAsynchronousSocketChannel
public abstract AsynchronousSocketChannel openAsynchronousSocketChannel(AsynchronousChannelGroup group) throws IOException 打开一个异步套接字通道。- 参数:
-
group
- 通道绑定的组,或null
表示绑定到默认组 - 返回:
- 新通道
- 抛出:
-
IllegalChannelGroupException
- 如果创建组的提供者与此提供者不同 -
ShutdownChannelGroupException
- 组已关闭 -
IOException
- 如果发生I/O错误
-