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 I/O 操作完成所需的机制。 组有一个关联的线程池,这些任务将提交以处理 I/O 事件,并调度到 CompletionHandler completion-handlers 该池,以使用对组中通道执行的异步操作的结果。 除了处理 I/O 事件外,共用线程还可以执行支持执行异步 I/O 操作所需的其他任务。

通过调用 #withFixedThreadPool withFixedThreadPool 此处定义的或 #withCachedThreadPool withCachedThreadPool 方法创建异步通道组。 通道通过在构造通道时指定组来绑定到组。 关联的线程池<>由组拥有</em>;组终止会导致关联的线程池关闭。

除了显式创建的组外,Java 虚拟机还维护自动构造的系统范围的 <em 默认组</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><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><th><scope=“row”<java.nio.channels.DefaultThreadPool.initialSize>/th><td> 默认组的参数值initialSize(请参阅)。#withCachedThreadPool withCachedThreadPool 该属性的值将作为 String 初始大小参数的 Integer 表示形式。 如果无法分析该值, Integer 则会导致在默认组的构造过程中引发未指定的错误。 </td></tr></tbody></table>

“threading”><h2>Threading</h2>

在绑定到组的通道上启动的 I/O 操作的完成处理程序可以保证由组中的一个共用线程调用。 这可确保完成处理程序由具有预期 <em>identity</em> 的线程运行。

如果 I/O 操作立即完成,并且启动线程是组中的共用线程之一,则启动线程可以直接由发起线程调用完成处理程序。 为了避免堆栈溢出,实现可能会对线程堆栈上的激活数施加限制。 某些 I/O 操作可能禁止由发起线程直接调用完成处理程序(请参阅 AsynchronousServerSocketChannel#accept(Object,CompletionHandler) accept)。

“shutdown”><h2>Shutdown and Termination</h2>

该方法 #shutdown() shutdown 用于启动 <组的 em>有序关闭</em> 。 有序关闭将组标记为关闭;进一步尝试构造绑定到组的通道将引发 ShutdownChannelGroupException。 是否可以使用 #isShutdown() isShutdown 该方法测试组是否关闭。 关闭后,当绑定到组的所有异步通道关闭时,组 <em>将终止</em> ,所有主动执行的完成处理程序都运行到完成,并且释放组使用的资源。 不会尝试停止或中断正在执行完成处理程序的线程。 该方法 #isTerminated() isTerminated 用于测试组是否已终止,并且 #awaitTermination awaitTermination 该方法可用于阻止,直到组终止为止。

该方法 #shutdownNow() shutdownNow 可用于启动 <组的 em>强制关闭</em> 。 除了有序关闭所执行的操作外, shutdownNow 该方法还会关闭组中所有打开的通道,就像调用该方法一 AsynchronousChannel#close close 样。

已在 1.7 中添加。

适用于 . 的 java.nio.channels.AsynchronousChannelGroupJava 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

构造函数

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> 或 <em>interrupted</em>。<><

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</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)

用于资源共享的异步通道分组。

适用于