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) execute
AbstractExecutorService#submit(Runnable) submit
生成内部对象以控制每个任务延迟和计划的方法ScheduledFuture
。 若要保留功能,子类中对这些方法的任何进一步重写都必须调用超级类版本,从而有效地禁用其他任务自定义。 但是,此类提供替代的受保护扩展方法decorateTask
(每个版本各Runnable
有Callable
一个版本),可用于自定义用于执行通过execute
、submit
、schedule
和scheduleAtFixedRate
scheduleWithFixedDelay
输入的命令的具体任务类型。 默认情况下,使用 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.ScheduledThreadPoolExecutor
Java 文档
本页的某些部分是根据 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) |
可以 |