Freigeben über


ScheduledThreadPoolExecutor Klasse

Definition

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

[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
Vererbung
Attribute
Implementiert

Hinweise

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann. Diese Klasse ist vorzuziehen java.util.Timer , wenn mehrere Arbeitsthreads benötigt werden oder wenn die zusätzliche Flexibilität oder Funktionen ThreadPoolExecutor (die diese Klasse erweitert) erforderlich sind.

Verzögerte Aufgaben werden nicht früher ausgeführt, als sie aktiviert sind, aber ohne Echtzeitgarantien, wann sie nach der Aktivierung beginnen. Vorgänge, die für genau die gleiche Ausführungszeit geplant sind, werden in der FiFO-Reihenfolge (First-in-First-Out) der Übermittlung aktiviert.

Wenn eine übermittelte Aufgabe abgebrochen wird, bevor sie ausgeführt wird, wird die Ausführung unterdrückt. Standardmäßig wird ein solcher abgebrochener Vorgang nicht automatisch aus der Arbeitswarteschlange entfernt, bis seine Verzögerung verstrichen ist. Dies ermöglicht zwar eine weitere Überprüfung und Überwachung, kann aber auch zu einer ungebundenen Aufbewahrung von abgebrochenen Vorgängen führen.

Aufeinander folgende Ausführungen eines periodischen Vorgangs, der über #scheduleAtFixedRate scheduleAtFixedRate oder #scheduleWithFixedDelay scheduleWithFixedDelay nicht überlappend geplant ist. Während verschiedene Ausführungen von verschiedenen Threads ausgeführt werden können, werden die Auswirkungen früherer Ausführungen <vor></i> auf nachfolgende Ausgeführte angewendet.

Diese Klasse erbt zwar von ThreadPoolExecutor, aber einige der geerbten Optimierungsmethoden sind dafür nicht nützlich. Insbesondere, da sie als Pool mit fester Größe mit corePoolSize Threads und einer ungebundenen Warteschlange fungiert, haben Anpassungen keinen nützlichen maximumPoolSize Effekt. Darüber hinaus ist es fast nie eine gute Idee, auf Null festzulegen corePoolSize oder zu verwenden allowCoreThreadTimeOut , da dies den Pool ohne Threads verlassen kann, um Aufgaben zu verarbeiten, sobald sie zur Ausführung berechtigt sind.

Wie bei ThreadPoolExecutor, wenn nicht anders angegeben, verwendet Executors#defaultThreadFactory diese Klasse als Standardthreadfactory und ThreadPoolExecutor.AbortPolicy als standardmäßig abgelehnter Ausführungshandler.

<b>Erweiterungshinweise:</b> Diese Klasse überschreibt die ThreadPoolExecutor#execute(Runnable) execute und AbstractExecutorService#submit(Runnable) submit Methoden, um interne ScheduledFuture Objekte zu generieren, um Verzögerungen und Planungen pro Vorgang zu steuern. Um die Funktionalität beizubehalten, müssen alle weiteren Außerkraftsetzungen dieser Methoden in Unterklassen Superklassenversionen aufrufen, wodurch zusätzliche Aufgabenanpassungen effektiv deaktiviert werden. Diese Klasse bietet jedoch eine alternative geschützte Erweiterungsmethode decorateTask (jeweils eine Version für Runnable und Callable), die verwendet werden kann, um die konkreten Aufgabentypen anzupassen, die zum Ausführen von Befehlen verwendet werden, die über execute, , submit, schedule, scheduleAtFixedRateund .scheduleWithFixedDelay Standardmäßig wird ein ScheduledThreadPoolExecutor Vorgangstyp verwendet, der erweitert wird FutureTask. Dies kann jedoch mithilfe von Unterklassen des Formulars geändert oder ersetzt werden:

{@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.
            }}

Hinzugefügt in 1.5.

Java-Dokumentation für java.util.concurrent.ScheduledThreadPoolExecutor.

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Konstruktoren

ScheduledThreadPoolExecutor(Int32)

Erstellt eine neue ScheduledThreadPoolExecutor mit der angegebenen Kernpoolgröße.

ScheduledThreadPoolExecutor(Int32, IRejectedExecutionHandler)

Erstellt ein neues ScheduledThreadPoolExecutor mit den angegebenen Anfangsparametern.

ScheduledThreadPoolExecutor(Int32, IThreadFactory)

Erstellt ein neues ScheduledThreadPoolExecutor mit den angegebenen Anfangsparametern.

ScheduledThreadPoolExecutor(Int32, IThreadFactory, IRejectedExecutionHandler)

Erstellt ein neues ScheduledThreadPoolExecutor mit den angegebenen Anfangsparametern.

ScheduledThreadPoolExecutor(IntPtr, JniHandleOwnership)

Ein Konstruktor, der beim Erstellen verwalteter Darstellungen von JNI-Objekten verwendet wird; wird von der Laufzeit aufgerufen.

Eigenschaften

ActiveCount

Gibt die ungefähre Anzahl von Threads zurück, die aktiv Aufgaben ausführen.

(Geerbt von ThreadPoolExecutor)
Class

Gibt die Laufzeitklasse dieses Werts Objectzurück.

(Geerbt von Object)
CompletedTaskCount

Gibt die ungefähre Gesamtzahl der Aufgaben zurück, die die Ausführung abgeschlossen haben.

(Geerbt von ThreadPoolExecutor)
ContinueExistingPeriodicTasksAfterShutdownPolicy

Ruft die Richtlinie ab, ob vorhandene regelmäßige Vorgänge weiterhin ausgeführt werden sollen, auch wenn dieser Executor ausgeführt wurde shutdown. - oder- Legt die Richtlinie fest, ob vorhandene regelmäßige Vorgänge weiterhin ausgeführt werden sollen, auch wenn dieser Executor ausgeführt wurde shutdown.

CorePoolSize

Gibt die Kernanzahl von Threads zurück. -or- Legt die Kernanzahl von Threads fest.

(Geerbt von ThreadPoolExecutor)
ExecuteExistingDelayedTasksAfterShutdownPolicy

Ruft die Richtlinie ab, ob vorhandene verzögerte Aufgaben ausgeführt werden sollen, auch wenn dieser Executor ausgeführt wurde shutdown. -or- Legt die Richtlinie fest, ob vorhandene verzögerte Aufgaben auch dann ausgeführt werden sollen, wenn dieser Executor ausgeführt wurde shutdown.

Handle

Das Handle für die zugrunde liegende Android-Instanz.

(Geerbt von Object)
IsShutdown

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von ThreadPoolExecutor)
IsTerminated

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von ThreadPoolExecutor)
IsTerminating

Gibt true zurück, wenn sich dieser Executor im Prozess des Beendens nach #shutdown oder #shutdownNow aber nicht vollständig beendet hat.

(Geerbt von ThreadPoolExecutor)
JniIdentityHashCode

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von Object)
JniPeerMembers

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

LargestPoolSize

Gibt die größte Anzahl von Threads zurück, die sich jemals im Pool befinden.

(Geerbt von ThreadPoolExecutor)
MaximumPoolSize

Gibt die maximal zulässige Anzahl von Threads zurück. - oder- Legt die maximal zulässige Anzahl von Threads fest.

(Geerbt von ThreadPoolExecutor)
PeerReference

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von Object)
PoolSize

Gibt die aktuelle Anzahl von Threads im Pool zurück.

(Geerbt von ThreadPoolExecutor)
Queue

Gibt die von diesem Executor verwendete Aufgabenwarteschlange zurück.

(Geerbt von ThreadPoolExecutor)
RejectedExecutionHandler

Gibt den aktuellen Handler für nicht ausgeführte Vorgänge zurück. - oder- Legt einen neuen Handler für nicht ausgeführte Aufgaben fest.

(Geerbt von ThreadPoolExecutor)
RemoveOnCancelPolicy

Ruft die Richtlinie ab, ob abgebrochene Vorgänge zum Zeitpunkt des Abbruchs sofort aus der Arbeitswarteschlange entfernt werden sollen. -oder- Legt die Richtlinie fest, ob abgebrochene Vorgänge zum Zeitpunkt des Abbruchs sofort aus der Arbeitswarteschlange entfernt werden sollen.

TaskCount

Gibt die ungefähre Gesamtzahl der Vorgänge zurück, die jemals für die Ausführung geplant wurden.

(Geerbt von ThreadPoolExecutor)
ThreadFactory

Gibt die Threadfactory zurück, die zum Erstellen neuer Threads verwendet wird. - oder- Legt die Threadfactory fest, die zum Erstellen neuer Threads verwendet wird.

(Geerbt von ThreadPoolExecutor)
ThresholdClass

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

ThresholdType

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

Methoden

AfterExecute(IRunnable, Throwable)

Methode, die nach Abschluss der Ausführung des angegebenen Runnable aufgerufen wird.

(Geerbt von ThreadPoolExecutor)
AllowCoreThreadTimeOut(Boolean)

Legt die Richtlinie fest, die festlegt, ob Kernthreads ein Timeout und Beenden können, wenn keine Aufgaben innerhalb der Keep-Alive-Zeit eingehen und bei Bedarf ersetzt werden, wenn neue Vorgänge eingehen.

(Geerbt von ThreadPoolExecutor)
AllowsCoreThreadTimeOut()

Gibt "true" zurück, wenn dieser Pool das Timeout von Kernthreads ermöglicht und beendet werden kann, wenn keine Vorgänge innerhalb der keepAlive-Zeit eingehen, wenn neue Vorgänge eingehen.

(Geerbt von ThreadPoolExecutor)
AwaitTermination(Int64, TimeUnit)

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von ThreadPoolExecutor)
AwaitTerminationAsync(Int64, TimeUnit)

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von AbstractExecutorService)
BeforeExecute(Thread, IRunnable)

Die Methode, die vor dem Ausführen des angegebenen Runnable-Werts im angegebenen Thread aufgerufen wurde.

(Geerbt von ThreadPoolExecutor)
Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
DecorateTask(ICallable, IRunnableScheduledFuture)

Ändert oder ersetzt die Aufgabe, die zum Ausführen eines aufrufbaren Vorgangs verwendet wird.

DecorateTask(IRunnable, IRunnableScheduledFuture)

Ändert oder ersetzt die Aufgabe, die zum Ausführen einer ausführungsfähigen Aufgabe verwendet wird.

Dispose()

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von Object)
Dispose(Boolean)

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von Object)
Equals(Object)

Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist.

(Geerbt von Object)
Execute(IRunnable)

Führt die angegebene Aufgabe irgendwann in der Zukunft aus.

(Geerbt von ThreadPoolExecutor)
GetHashCode()

Gibt einen Hashcodewert für das Objekt zurück.

(Geerbt von Object)
GetKeepAliveTime(TimeUnit)

Gibt die Thread-Keep-Alive-Zeit zurück, d. h. die Zeitspanne, die Threads im Leerlauf bleiben können, bevor sie beendet werden.

(Geerbt von ThreadPoolExecutor)
InvokeAll(ICollection)

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von AbstractExecutorService)
InvokeAll(ICollection, Int64, TimeUnit)

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von AbstractExecutorService)
InvokeAny(ICollection)

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von AbstractExecutorService)
InvokeAny(ICollection, Int64, TimeUnit)

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von AbstractExecutorService)
JavaFinalize()

Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind.

(Geerbt von Object)
NewTaskFor(ICallable)

Gibt einen RunnableFuture Wert für den angegebenen aufrufbaren Vorgang zurück.

(Geerbt von AbstractExecutorService)
NewTaskFor(IRunnable, Object)

Gibt einen RunnableFuture Wert für den angegebenen Runnable- und Standardwert zurück.

(Geerbt von AbstractExecutorService)
Notify()

Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet.

(Geerbt von Object)
NotifyAll()

Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten.

(Geerbt von Object)
PrestartAllCoreThreads()

Startet alle Kernthreads, sodass sie idly auf arbeit warten.

(Geerbt von ThreadPoolExecutor)
PrestartCoreThread()

Startet einen Kernthread, sodass er idly auf die Arbeit wartet.

(Geerbt von ThreadPoolExecutor)
Purge()

Versucht, alle Future Vorgänge, die abgebrochen wurden, aus der Arbeitswarteschlange zu entfernen.

(Geerbt von ThreadPoolExecutor)
Remove(IRunnable)

Entfernt diese Aufgabe aus der internen Warteschlange des Executors, wenn sie vorhanden ist, sodass sie nicht ausgeführt wird, wenn sie noch nicht gestartet wurde.

(Geerbt von ThreadPoolExecutor)
Schedule(ICallable, Int64, TimeUnit)

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

Schedule(IRunnable, Int64, TimeUnit)

Erstellt und führt eine Einmalige Aktion aus, die nach der angegebenen Verzögerung aktiviert wird.

ScheduleAtFixedRate(IRunnable, Int64, Int64, TimeUnit)

Legt eine regelmäßige Aktion vor, die zuerst nach der anfänglichen Verzögerung und anschließend mit dem angegebenen Zeitraum aktiviert wird; d. h., Die Hinrichtungen werden nach initialDelay, dann initialDelay + period, dann initialDelay + 2 * periodusw. beginnen.

ScheduleWithFixedDelay(IRunnable, Int64, Int64, TimeUnit)

Übermittelt eine regelmäßige Aktion, die nach der ersten Verzögerung aktiviert wird, und anschließend mit der gegebenen Verzögerung zwischen der Beendigung einer Ausführung und dem Beginn der nächsten.

SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
SetKeepAliveTime(Int64, TimeUnit)

Legt die Thread-Keep-Alive-Zeit fest, d. h. die Zeitspanne, die Threads im Leerlauf bleiben können, bevor sie beendet werden.

(Geerbt von ThreadPoolExecutor)
Shutdown()

Initiiert ein geordnetes Herunterfahren, in dem zuvor übermittelte Aufgaben ausgeführt werden, aber keine neuen Aufgaben werden akzeptiert.

(Geerbt von ThreadPoolExecutor)
ShutdownNow()

Versucht, alle aktiv ausgeführten Aufgaben zu beenden, die Verarbeitung von Wartevorgängen anzuhalten und gibt eine Liste der Aufgaben zurück, die auf die Ausführung warten.

(Geerbt von ThreadPoolExecutor)
Submit(ICallable)

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von AbstractExecutorService)
Submit(IRunnable)

Sendet eine ausführungsfähige Aufgabe und gibt eine Zukunft zurück, die diese Aufgabe darstellt.

(Geerbt von AbstractExecutorService)
Submit(IRunnable, Object)

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von AbstractExecutorService)
Terminated()

Die Methode wird aufgerufen, wenn der Executor beendet wurde.

(Geerbt von ThreadPoolExecutor)
ToArray<T>()

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung des Objekts zurück.

(Geerbt von Object)
UnregisterFromRuntime()

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von Object)
Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em> oder <em>unterbrochen</em>.<><

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IJavaPeerable.Disposed()

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von Object)
IJavaPeerable.DisposeUnlessReferenced()

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von Object)
IJavaPeerable.Finalized()

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von Object)
IJavaPeerable.JniManagedPeerState

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

(Geerbt von Object)

Erweiterungsmethoden

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

GetJniTypeName(IJavaPeerable)

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

AwaitTerminationAsync(IExecutorService, Int64, TimeUnit)

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

InvokeAnyAsync(IExecutorService, ICollection)

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

InvokeAnyAsync(IExecutorService, ICollection, Int64, TimeUnit)

Ein ThreadPoolExecutor Befehl, der zusätzlich die Ausführung nach einer bestimmten Verzögerung oder die ausführung in regelmäßigen Abständen planen kann.

Gilt für: