ScheduledThreadPoolExecutor 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。
[Android.Runtime.Register("java/util/concurrent/ScheduledThreadPoolExecutor", DoNotGenerateAcw=true)]
public class ScheduledThreadPoolExecutor : Java.Util.Concurrent.ThreadPoolExecutor, IDisposable, Java.Interop.IJavaPeerable, Java.Util.Concurrent.IScheduledExecutorService
[<Android.Runtime.Register("java/util/concurrent/ScheduledThreadPoolExecutor", DoNotGenerateAcw=true)>]
type ScheduledThreadPoolExecutor = class
inherit ThreadPoolExecutor
interface IScheduledExecutorService
interface IExecutorService
interface IExecutor
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 继承
- 属性
- 实现
注解
可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。 此类最好是 java.util.Timer 需要多个工作线程,或者当需要额外灵活性或功能 ThreadPoolExecutor (此类扩展)时。
延迟的任务的执行时间不会早于启用,但不会有任何实时保证,即启用后,它们将启动。 在提交的第一次出(FIFO)顺序中启用了完全相同的执行时间计划的任务。
在运行提交的任务之前取消时,将取消执行。 默认情况下,此类取消的任务不会自动从工作队列中删除,直到其延迟过后。 虽然这可以实现进一步的检查和监视,但它也可能导致取消任务的无限保留。
通过 #scheduleAtFixedRate scheduleAtFixedRate 计划或 #scheduleWithFixedDelay scheduleWithFixedDelay 不重叠的定期任务的连续执行。 虽然不同的执行可能由不同的线程执行,但以前的执行<效果发生在之前></i>,而后续执行的效果。
虽然此类继承自 ThreadPoolExecutor,但一些继承的优化方法对它没有用处。 具体而言,因为它充当使用 corePoolSize 线程和未绑定队列的固定大小的池,因此 maximumPoolSize 调整不会产生任何有用的效果。 此外,设置为零或使用allowCoreThreadTimeOut几乎从来不是个好主意corePoolSize,因为这可能会导致池中没有线程来处理任务,一旦它们有资格运行。
与 一 ThreadPoolExecutor样,如果未指定,则此类用作 Executors#defaultThreadFactory 默认线程工厂,并 ThreadPoolExecutor.AbortPolicy 用作默认拒绝的执行处理程序。
<b>扩展说明:</b> 此类重写ThreadPoolExecutor#execute(Runnable) executeAbstractExecutorService#submit(Runnable) submit生成内部对象以控制每个任务延迟和计划的方法ScheduledFuture。 若要保留功能,子类中对这些方法的任何进一步重写都必须调用超级类版本,从而有效地禁用其他任务自定义。 但是,此类提供替代的受保护扩展方法decorateTask(每个版本各Runnable有Callable一个版本),可用于自定义用于执行通过execute、submit、schedule和scheduleAtFixedRatescheduleWithFixedDelay输入的命令的具体任务类型。 默认情况下,使用 ScheduledThreadPoolExecutor 任务类型扩展 FutureTask。 但是,可以使用窗体的子类来修改或替换此项:
{@code
public class CustomScheduledExecutor extends ScheduledThreadPoolExecutor {
static class CustomTask<V> implements RunnableScheduledFuture<V> { ... }
protected <V> RunnableScheduledFuture<V> decorateTask(
Runnable r, RunnableScheduledFuture<V> task) {
return new CustomTask<V>(r, task);
}
protected <V> RunnableScheduledFuture<V> decorateTask(
Callable<V> c, RunnableScheduledFuture<V> task) {
return new CustomTask<V>(c, task);
}
// ... add constructors, etc.
}}
在 1.5 中添加。
适用于 . 的 java.util.concurrent.ScheduledThreadPoolExecutorJava 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。
构造函数
| ScheduledThreadPoolExecutor(Int32) |
|
| ScheduledThreadPoolExecutor(Int32, IRejectedExecutionHandler) |
|
| ScheduledThreadPoolExecutor(Int32, IThreadFactory) |
|
| ScheduledThreadPoolExecutor(Int32, IThreadFactory, IRejectedExecutionHandler) |
|
| ScheduledThreadPoolExecutor(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
属性
| ActiveCount |
返回正在主动执行任务的大致线程数。 (继承自 ThreadPoolExecutor) |
| Class |
返回此 |
| CompletedTaskCount |
返回已完成执行的任务的大致总数。 (继承自 ThreadPoolExecutor) |
| ContinueExistingPeriodicTasksAfterShutdownPolicy |
获取有关是否继续执行现有定期任务的策略,即使此执行程序已 |
| CorePoolSize |
返回线程的核心数。 - 或 - 设置线程的核心数。 (继承自 ThreadPoolExecutor) |
| ExecuteExistingDelayedTasksAfterShutdownPolicy |
获取有关是否执行现有延迟任务的策略,即使此执行程序已 |
| Handle |
基础 Android 实例的句柄。 (继承自 Object) |
| IsShutdown |
可以 |
| IsTerminated |
可以 |
| IsTerminating |
如果此执行程序正在终止或 |
| JniIdentityHashCode |
可以 |
| JniPeerMembers |
可以 |
| LargestPoolSize |
返回同时在池中的最大线程数。 (继承自 ThreadPoolExecutor) |
| MaximumPoolSize |
返回允许的最大线程数。 - 或 - 设置允许的最大线程数。 (继承自 ThreadPoolExecutor) |
| PeerReference |
可以 |
| PoolSize |
返回池中的当前线程数。 (继承自 ThreadPoolExecutor) |
| Queue |
返回此执行程序使用的任务队列。 (继承自 ThreadPoolExecutor) |
| RejectedExecutionHandler |
返回不可执行任务的当前处理程序。 - 或 - 为不可执行的任务设置新的处理程序。 (继承自 ThreadPoolExecutor) |
| RemoveOnCancelPolicy |
获取取消时是否应立即从工作队列中删除已取消的任务的策略。 - 或 - 设置在取消时是否应立即从工作队列中删除已取消的任务的策略。 |
| TaskCount |
返回已计划执行的任务的大致总数。 (继承自 ThreadPoolExecutor) |
| ThreadFactory |
返回用于创建新线程的线程工厂。 - 或 - 设置用于创建新线程的线程工厂。 (继承自 ThreadPoolExecutor) |
| ThresholdClass |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
| ThresholdType |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
方法
| AfterExecute(IRunnable, Throwable) |
在给定 Runnable 执行完成后调用的方法。 (继承自 ThreadPoolExecutor) |
| AllowCoreThreadTimeOut(Boolean) |
设置一个策略,用于控制核心线程在保持活动时间内是否可能超时和终止,如果需要,当新任务到达时,将替换这些任务。 (继承自 ThreadPoolExecutor) |
| AllowsCoreThreadTimeOut() |
如果此池允许核心线程超时,并在 keepAlive 时间内没有任务到达,则返回 true,如果新任务到达时需要替换。 (继承自 ThreadPoolExecutor) |
| AwaitTermination(Int64, TimeUnit) |
可以 |
| AwaitTerminationAsync(Int64, TimeUnit) |
可以 |
| BeforeExecute(Thread, IRunnable) |
在给定线程中执行给定的 Runnable 之前调用的方法。 (继承自 ThreadPoolExecutor) |
| Clone() |
创建并返回此对象的副本。 (继承自 Object) |
| DecorateTask(ICallable, IRunnableScheduledFuture) |
修改或替换用于执行可调用项的任务。 |
| DecorateTask(IRunnable, IRunnableScheduledFuture) |
修改或替换用于执行可运行的任务。 |
| Dispose() |
可以 |
| Dispose(Boolean) |
可以 |
| Equals(Object) |
指示其他对象是否“等于”此对象。 (继承自 Object) |
| Execute(IRunnable) |
在将来某个时候执行给定的任务。 (继承自 ThreadPoolExecutor) |
| GetHashCode() |
返回对象的哈希代码值。 (继承自 Object) |
| GetKeepAliveTime(TimeUnit) |
返回线程保持活动时间,即线程在终止之前可能保持空闲的时间量。 (继承自 ThreadPoolExecutor) |
| InvokeAll(ICollection) |
可以 |
| InvokeAll(ICollection, Int64, TimeUnit) |
可以 |
| InvokeAny(ICollection) |
可以 |
| InvokeAny(ICollection, Int64, TimeUnit) |
可以 |
| JavaFinalize() |
当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。 (继承自 Object) |
| NewTaskFor(ICallable) |
返回 |
| NewTaskFor(IRunnable, Object) |
返回 |
| Notify() |
唤醒正在等待此对象的监视器的单个线程。 (继承自 Object) |
| NotifyAll() |
唤醒正在等待此对象的监视器的所有线程。 (继承自 Object) |
| PrestartAllCoreThreads() |
启动所有核心线程,导致它们完全等待工作。 (继承自 ThreadPoolExecutor) |
| PrestartCoreThread() |
启动一个核心线程,导致它等待工作。 (继承自 ThreadPoolExecutor) |
| Purge() |
尝试从工作队列 |
| Remove(IRunnable) |
如果存在该任务,则从执行程序的内部队列中删除此任务,因此,如果尚未启动,则不会运行该任务。 (继承自 ThreadPoolExecutor) |
| Schedule(ICallable, Int64, TimeUnit) |
可以 |
| Schedule(IRunnable, Int64, TimeUnit) |
创建并执行在给定延迟后启用的一次性操作。 |
| ScheduleAtFixedRate(IRunnable, Int64, Int64, TimeUnit) |
提交一个定期操作,该操作先在给定的初始延迟后启用,然后提交给定时间段;也就是说,执行将在之后 |
| ScheduleWithFixedDelay(IRunnable, Int64, Int64, TimeUnit) |
提交一个定期操作,该操作在给定的初始延迟后首先启用,随后在终止一次执行和下一次执行开始之间的给定延迟。 |
| SetHandle(IntPtr, JniHandleOwnership) |
设置 Handle 属性。 (继承自 Object) |
| SetKeepAliveTime(Int64, TimeUnit) |
设置线程保持活动时间,即线程在终止之前可能保持空闲的时间量。 (继承自 ThreadPoolExecutor) |
| Shutdown() |
启动有序关闭,在该关闭中执行以前提交的任务,但不会接受任何新任务。 (继承自 ThreadPoolExecutor) |
| ShutdownNow() |
尝试停止所有主动执行的任务,停止正在等待的任务的处理,并返回等待执行的任务的列表。 (继承自 ThreadPoolExecutor) |
| Submit(ICallable) |
可以 |
| Submit(IRunnable) |
提交可运行的任务以供执行,并返回表示该任务的 Future。 (继承自 AbstractExecutorService) |
| Submit(IRunnable, Object) |
可以 |
| Terminated() |
执行程序终止时调用的方法。 (继承自 ThreadPoolExecutor) |
| ToArray<T>() |
可以 |
| ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
| UnregisterFromRuntime() |
可以 |
| Wait() |
使当前线程等待,直到唤醒它,通常是通过 em 通知/em> 或 <em>interrupted</em>。<>< (继承自 Object) |
| Wait(Int64) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。 (继承自 Object) |
| Wait(Int64, Int32) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。 (继承自 Object) |
显式接口实现
| IJavaPeerable.Disposed() |
可以 |
| IJavaPeerable.DisposeUnlessReferenced() |
可以 |
| IJavaPeerable.Finalized() |
可以 |
| IJavaPeerable.JniManagedPeerState |
可以 |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
可以 |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
可以 |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
可以 |
扩展方法
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
可以 |
| GetJniTypeName(IJavaPeerable) |
可以 |
| AwaitTerminationAsync(IExecutorService, Int64, TimeUnit) |
可以 |
| InvokeAnyAsync(IExecutorService, ICollection) |
可以 |
| InvokeAnyAsync(IExecutorService, ICollection, Int64, TimeUnit) |
可以 |