IExecutor Interface
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Objet qui exécute des tâches envoyées Runnable .
[Android.Runtime.Register("java/util/concurrent/Executor", "", "Java.Util.Concurrent.IExecutorInvoker")]
public interface IExecutor : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/concurrent/Executor", "", "Java.Util.Concurrent.IExecutorInvoker")>]
type IExecutor = interface
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Dérivé
- Attributs
- Implémente
Remarques
Objet qui exécute des tâches envoyées Runnable . Cette interface permet de découpler la soumission de tâches à partir de la mécanique de l’exécution de chaque tâche, y compris les détails de l’utilisation du thread, de la planification, etc. Il Executor est normalement utilisé au lieu de créer explicitement des threads. Par exemple, au lieu d’appeler new Thread(new RunnableTask()).start() chacun d’un ensemble de tâches, vous pouvez utiliser :
{@code
Executor executor = anExecutor();
executor.execute(new RunnableTask1());
executor.execute(new RunnableTask2());
...}
Toutefois, l’interface ne nécessite pas strictement que l’exécution Executor soit asynchrone. Dans le cas le plus simple, un exécuteur peut exécuter la tâche envoyée immédiatement dans le thread de l’appelant :
{@code
class DirectExecutor implements Executor {
public void execute(Runnable r) {
r.run();
}
}}
Plus généralement, les tâches sont exécutées dans un thread autre que le thread de l’appelant. L’exécuteur ci-dessous génère un nouveau thread pour chaque tâche.
{@code
class ThreadPerTaskExecutor implements Executor {
public void execute(Runnable r) {
new Thread(r).start();
}
}}
De nombreuses Executor implémentations imposent une certaine limitation quant à la façon et au moment où les tâches sont planifiées. L’exécuteur ci-dessous sérialise la soumission de tâches à un deuxième exécuteur, illustrant un exécuteur composite.
{@code
class SerialExecutor implements Executor {
final Queue<Runnable> tasks = new ArrayDeque<>();
final Executor executor;
Runnable active;
SerialExecutor(Executor executor) {
this.executor = executor;
}
public synchronized void execute(Runnable r) {
tasks.add(() -> {
try {
r.run();
} finally {
scheduleNext();
}
});
if (active == null) {
scheduleNext();
}
}
protected synchronized void scheduleNext() {
if ((active = tasks.poll()) != null) {
executor.execute(active);
}
}
}}
Les Executor implémentations fournies dans ce package implémentent ExecutorService, qui est une interface plus étendue. La ThreadPoolExecutor classe fournit une implémentation de pool de threads extensible. La Executors classe fournit des méthodes de fabrique pratiques pour ces exécuteurs.
Effets de cohérence de la mémoire : actions dans un thread avant de soumettre un Runnable objet à un Executor<i>happen-before</i> son exécution commence, peut-être dans un autre thread.
Ajouté à la version 1.5.
Java documentation pour java.util.concurrent.Executor.
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.
Propriétés
| Nom | Description |
|---|---|
| Handle |
Obtient la valeur JNI de l’objet Android sous-jacent. (Hérité de IJavaObject) |
| JniIdentityHashCode |
Retourne la valeur de |
| JniManagedPeerState |
État de l’homologue managé. (Hérité de IJavaPeerable) |
| JniObjectReferenceControlBlock |
Objet qui exécute des tâches envoyées |
| JniPeerMembers |
Prise en charge de l’accès aux membres et de l’appel. (Hérité de IJavaPeerable) |
| PeerReference |
Retourne une JniObjectReference instance d’objet Java encapsulée. (Hérité de IJavaPeerable) |
Méthodes
| Nom | Description |
|---|---|
| Disposed() |
Appelé lorsque l’instance a été supprimée. (Hérité de IJavaPeerable) |
| DisposeUnlessReferenced() |
S’il n’existe aucune référence en suspens à cette instance, les appels |
| Execute(IRunnable) |
Exécute la commande donnée à un moment donné à l’avenir. |
| Finalized() |
Appelé lorsque l’instance a été finalisée. (Hérité de IJavaPeerable) |
| SetJniIdentityHashCode(Int32) |
Définissez la valeur retournée par |
| SetJniManagedPeerState(JniManagedPeerStates) |
Objet qui exécute des tâches envoyées |
| SetPeerReference(JniObjectReference) |
Définissez la valeur retournée par |
| UnregisterFromRuntime() |
Annulez l’inscription de cette instance afin que le runtime ne le retourne pas à partir d’appels futurs Java.Interop.JniRuntime+JniValueManager.PeekValue . (Hérité de IJavaPeerable) |
Méthodes d’extension
| Nom | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtient le nom JNI du type de l’instance |
| JavaAs<TResult>(IJavaPeerable) |
Essayez de forcer |
| JavaCast<TResult>(IJavaObject) |
Effectue une conversion de type vérifiée par le runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Objet qui exécute des tâches envoyées |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Essayez de forcer |