ScheduledThreadPoolExecutor Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
, scheduleAtFixedRate
und .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(Int32, IRejectedExecutionHandler) |
Erstellt ein neues |
ScheduledThreadPoolExecutor(Int32, IThreadFactory) |
Erstellt ein neues |
ScheduledThreadPoolExecutor(Int32, IThreadFactory, IRejectedExecutionHandler) |
Erstellt ein neues |
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 |
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 |
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 |
Handle |
Das Handle für die zugrunde liegende Android-Instanz. (Geerbt von Object) |
IsShutdown |
Ein |
IsTerminated |
Ein |
IsTerminating |
Gibt true zurück, wenn sich dieser Executor im Prozess des Beendens nach |
JniIdentityHashCode |
Ein |
JniPeerMembers |
Ein |
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 |
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 |
AwaitTerminationAsync(Int64, TimeUnit) |
Ein |
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 |
Dispose(Boolean) |
Ein |
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 |
InvokeAll(ICollection, Int64, TimeUnit) |
Ein |
InvokeAny(ICollection) |
Ein |
InvokeAny(ICollection, Int64, TimeUnit) |
Ein |
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 |
NewTaskFor(IRunnable, Object) |
Gibt einen |
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 |
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 |
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 |
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 |
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 |
Terminated() |
Die Methode wird aufgerufen, wenn der Executor beendet wurde. (Geerbt von ThreadPoolExecutor) |
ToArray<T>() |
Ein |
ToString() |
Gibt eine Zeichenfolgendarstellung des Objekts zurück. (Geerbt von Object) |
UnregisterFromRuntime() |
Ein |
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 |
IJavaPeerable.DisposeUnlessReferenced() |
Ein |
IJavaPeerable.Finalized() |
Ein |
IJavaPeerable.JniManagedPeerState |
Ein |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Ein |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Ein |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Ein |
Erweiterungsmethoden
JavaCast<TResult>(IJavaObject) |
Führt eine android-laufzeitgecheckte Typkonvertierung aus. |
JavaCast<TResult>(IJavaObject) |
Ein |
GetJniTypeName(IJavaPeerable) |
Ein |
AwaitTerminationAsync(IExecutorService, Int64, TimeUnit) |
Ein |
InvokeAnyAsync(IExecutorService, ICollection) |
Ein |
InvokeAnyAsync(IExecutorService, ICollection, Int64, TimeUnit) |
Ein |