語言

ScheduledThreadPoolExecutor 類別

定義

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

[Android.Runtime.Register("java/util/concurrent/ScheduledThreadPoolExecutor", DoNotGenerateAcw=true)]
public class ScheduledThreadPoolExecutor : Java.Util.Concurrent.ThreadPoolExecutor, IDisposable, 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不重疊。 雖然不同執行可能由不同執行緒執行,但先前<><執行的影響會發生在前或>後續執行的影響。

雖然此類別繼承自 ThreadPoolExecutor,但部分繼承的調音方法對此並不實用。 特別是因為它作為一個固定大小的池,使用執行 corePoolSize 緒和無界佇列,調整不會 maximumPoolSize 有實質效果。 此外,幾乎從來不建議將 0 設 corePoolSize 為零或使用 allowCoreThreadTimeOut ,因為這可能會讓池子在任務達到執行資格時失去執行緒來處理。

如同 ThreadPoolExecutor,若未另行指定,此類別作為預設執行緒工廠,並Executors#defaultThreadFactory作為ThreadPoolExecutor.AbortPolicy預設拒絕的執行處理器。

<b>擴充說明:</b> 此類別覆蓋 ThreadPoolExecutor#execute(Runnable) executeAbstractExecutorService#submit(Runnable) submit 方法,以產生內部 ScheduledFuture 物件以控制各任務延遲與排程。 為了保留功能,子類別中對這些方法的後續覆寫必須呼叫超類別版本,這實際上會使額外的任務自訂功能失效。 然而,此類別提供替代的受保護擴充方法decorateTask(對 和 Runnable各一個版本Callable),可用來自訂執行透過 executesubmitschedulescheduleAtFixedRatescheduleWithFixedDelay及 輸入的具體任務類型。 預設情況下,a 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 文件 java.util.concurrent.ScheduledThreadPoolExecutor

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

建構函式

名稱 Description
ScheduledThreadPoolExecutor(Int32, IRejectedExecutionHandler)

建立 ScheduledThreadPoolExecutor 一個包含給定初始參數的新版本。

ScheduledThreadPoolExecutor(Int32, IThreadFactory, IRejectedExecutionHandler)

建立 ScheduledThreadPoolExecutor 一個包含給定初始參數的新版本。

ScheduledThreadPoolExecutor(Int32, IThreadFactory)

建立 ScheduledThreadPoolExecutor 一個包含給定初始參數的新版本。

ScheduledThreadPoolExecutor(Int32)

建立一個與特定核心池大小相同的新 ScheduledThreadPoolExecutor 模組。

ScheduledThreadPoolExecutor(IntPtr, JniHandleOwnership)

建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。

屬性

名稱 Description
ActiveCount

回傳正在執行任務的執行緒數量。

(繼承來源 ThreadPoolExecutor)
Class

傳回這個 Object的運行時間類別。

(繼承來源 Object)
CompletedTaskCount

回傳已完成執行任務的大致總數。

(繼承來源 ThreadPoolExecutor)
ContinueExistingPeriodicTasksAfterShutdownPolicy

取得是否繼續執行現有定期任務的政策,即使該執行者已經 shutdown。 -或- 設定即使執行者已完成 shutdown,是否繼續執行現有週期性任務的政策。

CorePoolSize

回傳核心執行緒數。 -或- 設定執行緒的核心數量。

(繼承來源 ThreadPoolExecutor)
ExecuteExistingDelayedTasksAfterShutdownPolicy

取得是否執行已延遲任務的政策,即使該執行者已執行 shutdown。 -或- 設定是否執行已延遲任務的政策,即使該執行者已執行 shutdown

Handle

基礎Android實例的句柄。

(繼承來源 Object)
IsShutdown (繼承來源 ThreadPoolExecutor)
IsTerminated (繼承來源 ThreadPoolExecutor)
IsTerminating

若該執行人正在終止或#shutdown#shutdownNow尚未完全終止,則會回傳真值。

(繼承來源 ThreadPoolExecutor)
JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

(繼承來源 JavaObject)
JniPeerMembers

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

LargestPoolSize

回傳有史以來同時進入池中最多的執行緒。

(繼承來源 ThreadPoolExecutor)
MaximumPoolSize

回傳最大允許執行緒數。 -或- 設定最大允許執行緒數。

(繼承來源 ThreadPoolExecutor)
PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
PoolSize

回傳池中目前執行緒的數量。

(繼承來源 ThreadPoolExecutor)
Queue

回傳該執行者使用的任務佇列。

(繼承來源 ThreadPoolExecutor)
RejectedExecutionHandler

回傳目前無法執行任務的處理器。 -或- 為不可執行任務設定新的處理器。

(繼承來源 ThreadPoolExecutor)
RemoveOnCancelPolicy

了解取消任務是否應該在取消時立即從工作佇列中移除的政策。 -或- 設定取消任務在取消時是否應立即從工作佇列中移除的政策。

TaskCount

回傳曾經排程執行過的任務總數。

(繼承來源 ThreadPoolExecutor)
ThreadFactory

回傳用於建立新執行緒的執行緒工廠。 -或- 設定用於建立新執行緒的執行緒工廠。

(繼承來源 ThreadPoolExecutor)
ThresholdClass

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

ThresholdType

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

方法

名稱 Description
AfterExecute(IRunnable, Throwable)

執行完成給定 Runnable 後會呼叫的方法。

(繼承來源 ThreadPoolExecutor)
AllowCoreThreadTimeOut(Boolean)

設定政策,規定若核心執行緒在保持有效時間內無任務抵達,是否可逾時終止,若有新任務抵達,則可重新啟用。

(繼承來源 ThreadPoolExecutor)
AllowsCoreThreadTimeOut()

若此池允許核心執行緒逾時,則在 keepAlive 時間內無任務抵達時終止,若有新任務到達,則會被替換。

(繼承來源 ThreadPoolExecutor)
AwaitTermination(Int64, TimeUnit) (繼承來源 ThreadPoolExecutor)
AwaitTerminationAsync(Int64, TimeUnit)

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

(繼承來源 AbstractExecutorService)
BeforeExecute(Thread, IRunnable)

在執行給定執行緒中執行給定 Runnable 之前,呼叫的方法。

(繼承來源 ThreadPoolExecutor)
Clone()

建立並傳回這個 對象的複本。

(繼承來源 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

(繼承來源 JavaObject)
DecorateTask(ICallable, IRunnableScheduledFuture)

修改或替換用於執行可呼叫的任務。

DecorateTask(IRunnable, IRunnableScheduledFuture)

修改或替換用於執行可執行的任務。

Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

(繼承來源 JavaObject)
Equals(Object)

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

(繼承來源 JavaObject)
Equals(Object)

指出其他物件是否「等於」這個物件。

(繼承來源 Object)
Execute(IRunnable)

未來某個時候執行該任務。

(繼承來源 ThreadPoolExecutor)
GetHashCode()

傳回此物件的雜湊碼值。

(繼承來源 Object)
GetKeepAliveTime(TimeUnit)

回傳執行緒保持存活時間,也就是執行緒在終止前可閒置的時間。

(繼承來源 ThreadPoolExecutor)
InvokeAll(ICollection, Int64, TimeUnit)

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

(繼承來源 AbstractExecutorService)
InvokeAll(ICollection)

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

(繼承來源 AbstractExecutorService)
InvokeAny(ICollection, Int64, TimeUnit)

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

(繼承來源 AbstractExecutorService)
InvokeAny(ICollection)

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

(繼承來源 AbstractExecutorService)
JavaFinalize()

當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。

(繼承來源 Object)
NewTaskFor(ICallable)

回傳給定可呼叫任務的 a RunnableFuture

(繼承來源 AbstractExecutorService)
NewTaskFor(IRunnable, Object)

回傳給定可執行且預設值的 a RunnableFuture

(繼承來源 AbstractExecutorService)
Notify()

喚醒正在等候此物件監視器的單一線程。

(繼承來源 Object)
NotifyAll()

喚醒正在等候此物件監視器的所有線程。

(繼承來源 Object)
PrestartAllCoreThreads()

啟動所有核心執行緒,導致它們閒置等待工作。

(繼承來源 ThreadPoolExecutor)
PrestartCoreThread()

啟動核心執行緒,導致它閒置等待工作。

(繼承來源 ThreadPoolExecutor)
Purge()

嘗試從工作佇列中移除所有 Future 已取消的任務。

(繼承來源 ThreadPoolExecutor)
Remove(IRunnable)

如果該任務存在,會從執行者的內部佇列中移除,因此如果任務尚未啟動,則不會執行。

(繼承來源 ThreadPoolExecutor)
Schedule(ICallable, Int64, TimeUnit)

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

Schedule(IRunnable, Int64, TimeUnit)

創建並執行一個一次性動作,該動作在指定延遲後會被啟用。

ScheduleAtFixedRate(IRunnable, Int64, Int64, TimeUnit)

提交一個週期性行動,該動作在給定的初始延遲後先啟用,隨後在指定期間內生效;也就是說,執行會在 initialDelay之後開始,接著 initialDelay + period,然後 initialDelay + 2 * period,依此類推。

ScheduleWithFixedDelay(IRunnable, Int64, Int64, TimeUnit)

提交一個週期性行動,該動作在給定的初始延遲後先被啟用,隨後在一次執行終止與下一次執行開始之間的指定延遲中啟用。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetKeepAliveTime(Int64, TimeUnit)

設定執行緒保持存活時間,也就是執行緒在終止前可閒置的時間。

(繼承來源 ThreadPoolExecutor)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

(繼承來源 JavaObject)
Shutdown()

啟動有序關機,執行先前提交的任務,但不再接受新的任務。

(繼承來源 ThreadPoolExecutor)
ShutdownNow()

嘗試停止所有正在執行的任務,停止等待任務的處理,並回傳等待執行的任務清單。

(繼承來源 ThreadPoolExecutor)
Submit(ICallable)

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

(繼承來源 AbstractExecutorService)
Submit(IRunnable, Object)

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

(繼承來源 AbstractExecutorService)
Submit(IRunnable)

提交一個可執行的任務,並回傳代表該任務的 Future。

(繼承來源 AbstractExecutorService)
Terminated()

當執行人終止時會被呼叫的方法。

(繼承來源 ThreadPoolExecutor)
ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToString()

傳回物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Wait()

讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<>

(繼承來源 Object)
Wait(Int64, Int32)

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

(繼承來源 Object)
Wait(Int64)

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

(繼承來源 Object)

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

(繼承來源 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

擴充方法

名稱 Description
AwaitTerminationAsync(IExecutorService, Int64, TimeUnit)

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

InvokeAnyAsync(IExecutorService, ICollection, Int64, TimeUnit)

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

InvokeAnyAsync(IExecutorService, ICollection)

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時間檢查的類型轉換。

JavaCast<TResult>(IJavaObject)

ThreadPoolExecutor此外,還能排程指令在指定延遲後執行,或定期執行。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於