ScheduledThreadPoolExecutor クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる 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によってスケジュールされた定期的なタスクの連続実行は重複しません。 異なるスレッドによって実行される実行は異なりますが、前の実行の影響 <i>happen-before</i> 後続の実行の影響です。
このクラスは ThreadPoolExecutorから継承されますが、継承されたチューニング メソッドの一部は役に立ちません。 特に、 corePoolSize スレッドと無制限のキューを使用する固定サイズのプールとして機能するため、 maximumPoolSize の調整は役に立ちません。 また、 corePoolSize を 0 に設定したり、 allowCoreThreadTimeOut を使用したりするのは、タスクを実行する資格が得た後にスレッドなしでプールを離れる可能性があるため、ほとんどお勧めできません。
ThreadPoolExecutorと同様に、特に指定しない場合、このクラスは既定のスレッド ファクトリとしてExecutors#defaultThreadFactoryを使用し、既定の拒否された実行ハンドラーとしてThreadPoolExecutor.AbortPolicyします。
<b>Extension notes:</b> このクラスは ThreadPoolExecutor#execute(Runnable) execute メソッドと AbstractExecutorService#submit(Runnable) submit メソッドをオーバーライドして、タスクごとの遅延とスケジュールを制御する内部 ScheduledFuture オブジェクトを生成します。 機能を保持するには、サブクラス内のこれらのメソッドをさらにオーバーライドしてスーパークラス バージョンを呼び出す必要があります。これにより、追加のタスクのカスタマイズが効果的に無効になります。 ただし、このクラスには、decorateTask、Runnable、Callable、execute、submitを介して入力されたコマンドを実行するために使用する具体的なタスクの種類をカスタマイズするために使用できる、保護された代替拡張メソッド schedule (scheduleAtFixedRateとscheduleWithFixedDelayにそれぞれ 1 つのバージョン) が用意されています。 既定では、 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 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| 名前 | 説明 |
|---|---|
| ScheduledThreadPoolExecutor(Int32, IRejectedExecutionHandler) |
指定された初期パラメーターを使用して新しい |
| ScheduledThreadPoolExecutor(Int32, IThreadFactory, IRejectedExecutionHandler) |
指定された初期パラメーターを使用して新しい |
| ScheduledThreadPoolExecutor(Int32, IThreadFactory) |
指定された初期パラメーターを使用して新しい |
| ScheduledThreadPoolExecutor(Int32) |
指定されたコア プール サイズを持つ新しい |
| ScheduledThreadPoolExecutor(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
プロパティ
| 名前 | 説明 |
|---|---|
| ActiveCount |
タスクをアクティブに実行しているスレッドの概数を返します。 (継承元 ThreadPoolExecutor) |
| Class |
この |
| CompletedTaskCount |
実行が完了したタスクのおおよその合計数を返します。 (継承元 ThreadPoolExecutor) |
| ContinueExistingPeriodicTasksAfterShutdownPolicy |
この Executor が |
| CorePoolSize |
スレッドのコア数を返します。 または、スレッドのコア数を設定します。 (継承元 ThreadPoolExecutor) |
| ExecuteExistingDelayedTasksAfterShutdownPolicy |
この Executor が |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| IsShutdown | (継承元 ThreadPoolExecutor) |
| IsTerminated | (継承元 ThreadPoolExecutor) |
| IsTerminating |
この Executor が |
| JniIdentityHashCode |
相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。 (継承元 Object) |
| JniManagedPeerState |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| JniPeerMembers |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| LargestPoolSize |
プール内に同時に存在したスレッドの最大数を返します。 (継承元 ThreadPoolExecutor) |
| MaximumPoolSize |
許容されるスレッドの最大数を返します。 または、許容されるスレッドの最大数を設定します。 (継承元 ThreadPoolExecutor) |
| PeerReference |
このJava ピアの JNI オブジェクト参照を取得します。 (継承元 Object) |
| PoolSize |
プール内の現在のスレッド数を返します。 (継承元 ThreadPoolExecutor) |
| Queue |
この Executor によって使用されるタスク キューを返します。 (継承元 ThreadPoolExecutor) |
| RejectedExecutionHandler |
実行できないタスクの現在のハンドラーを返します。 または、実行できないタスクの新しいハンドラーを設定します。 (継承元 ThreadPoolExecutor) |
| RemoveOnCancelPolicy |
取り消されたタスクを取り消し時に作業キューからすぐに削除する必要があるかどうかに関するポリシーを取得します。 または、取り消されたタスクを取り消し時に作業キューからすぐに削除するかどうかをポリシーに設定します。 |
| TaskCount |
実行がスケジュールされたタスクのおおよその合計数を返します。 (継承元 ThreadPoolExecutor) |
| ThreadFactory |
新しいスレッドの作成に使用されるスレッド ファクトリを返します。 または、新しいスレッドの作成に使用するスレッド ファクトリを設定します。 (継承元 ThreadPoolExecutor) |
| ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
| ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
メソッド
| 名前 | 説明 |
|---|---|
| AfterExecute(IRunnable, Throwable) |
指定された Runnable の実行が完了したときに呼び出されるメソッド。 (継承元 ThreadPoolExecutor) |
| AllowCoreThreadTimeOut(Boolean) |
キープアライブ時間内にタスクが到着しなかった場合にコア スレッドがタイムアウトして終了するかどうかを制御するポリシーを設定します。新しいタスクが到着したときに必要に応じて置き換えられます。 (継承元 ThreadPoolExecutor) |
| AllowsCoreThreadTimeOut() |
このプールでコア スレッドがタイムアウトし、keepAlive 時間内にタスクが到着しなかった場合は終了できる場合は true を返し、新しいタスクが到着したときに必要に応じて置き換えられます。 (継承元 ThreadPoolExecutor) |
| AwaitTermination(Int64, TimeUnit) | (継承元 ThreadPoolExecutor) |
| AwaitTerminationAsync(Int64, TimeUnit) |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| BeforeExecute(Thread, IRunnable) |
指定されたスレッドで指定された Runnable を実行する前に呼び出されるメソッド。 (継承元 ThreadPoolExecutor) |
| Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| DecorateTask(ICallable, IRunnableScheduledFuture) |
呼び出し可能なタスクの実行に使用するタスクを変更または置換します。 |
| DecorateTask(IRunnable, IRunnableScheduledFuture) |
実行可能ファイルの実行に使用するタスクを変更または置換します。 |
| Dispose() |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| Dispose(Boolean) |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| DisposeUnlessReferenced() |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| Equals(Object) |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
| Execute(IRunnable) |
将来、特定のタスクを実行します。 (継承元 ThreadPoolExecutor) |
| GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
| GetKeepAliveTime(TimeUnit) |
スレッドのキープアライブ時間を返します。これは、スレッドが終了する前にアイドル状態のままになる可能性がある時間です。 (継承元 ThreadPoolExecutor) |
| InvokeAll(ICollection, Int64, TimeUnit) |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| InvokeAll(ICollection) |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| InvokeAny(ICollection, Int64, TimeUnit) |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| InvokeAny(ICollection) |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| JavaFinalize() |
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
| NewTaskFor(ICallable) |
指定された呼び出し可能なタスクの |
| NewTaskFor(IRunnable, Object) |
指定された実行可能値と既定値の |
| Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
| NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
| PrestartAllCoreThreads() |
すべてのコア スレッドを開始し、作業を待ちます。 (継承元 ThreadPoolExecutor) |
| PrestartCoreThread() |
コア スレッドを開始し、作業を idly 待機させます。 (継承元 ThreadPoolExecutor) |
| Purge() |
取り消されたすべての |
| Remove(IRunnable) |
このタスクが存在する場合は、Executor の内部キューから削除されるため、まだ開始されていない場合は実行されません。 (継承元 ThreadPoolExecutor) |
| Schedule(ICallable, Int64, TimeUnit) |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| Schedule(IRunnable, Int64, TimeUnit) |
指定された遅延後に有効になるワンショット アクションを作成して実行します。 |
| ScheduleAtFixedRate(IRunnable, Int64, Int64, TimeUnit) |
指定された最初の遅延の後に最初に有効になり、次に指定された期間で有効になる定期的なアクションを送信します。つまり、実行は |
| ScheduleWithFixedDelay(IRunnable, Int64, Int64, TimeUnit) |
指定された最初の遅延の後に最初に有効になる定期的なアクションを送信し、その後、1 回の実行の終了から次の実行の開始までの間の特定の遅延を指定して送信します。 |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
| SetKeepAliveTime(Int64, TimeUnit) |
スレッドのキープアライブ時間を設定します。これは、スレッドが終了する前にアイドル状態のままになる可能性がある時間です。 (継承元 ThreadPoolExecutor) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| Shutdown() |
以前に送信されたタスクが実行される順序付けされたシャットダウンを開始しますが、新しいタスクは受け入れなくなります。 (継承元 ThreadPoolExecutor) |
| ShutdownNow() |
アクティブに実行されているすべてのタスクを停止し、待機中のタスクの処理を停止し、実行を待機していたタスクの一覧を返します。 (継承元 ThreadPoolExecutor) |
| Submit(ICallable) |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| Submit(IRunnable, Object) |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| Submit(IRunnable) |
実行可能タスクを実行用に送信し、そのタスクを表す Future を返します。 (継承元 AbstractExecutorService) |
| Terminated() |
Executor が終了したときに呼び出されるメソッド。 (継承元 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) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IJavaPeerable.Disposed() |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| IJavaPeerable.Finalized() |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| IJavaPeerable.JniObjectReferenceControlBlock |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| IJavaPeerable.UnregisterFromRuntime() |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
拡張メソッド
| 名前 | 説明 |
|---|---|
| AwaitTerminationAsync(IExecutorService, Int64, TimeUnit) |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| InvokeAnyAsync(IExecutorService, ICollection, Int64, TimeUnit) |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| InvokeAnyAsync(IExecutorService, ICollection) |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
特定の遅延後に実行するコマンド、または定期的に実行するコマンドをさらにスケジュールできる |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|