AsynchronousChannelGroup 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
用于资源共享的异步通道分组。
[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
- 继承
- 属性
注解
用于资源共享的异步通道分组。
异步通道组封装了处理由该组绑定的 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.AsynchronousChannelGroup
Java 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。
构造函数
AsynchronousChannelGroup(AsynchronousChannelProvider) |
初始化此类的新实例。 |
AsynchronousChannelGroup(IntPtr, JniHandleOwnership) |
用于资源共享的异步通道分组。 |
属性
Class |
返回此 |
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) |
用于资源共享的异步通道分组。 |