IExecutor Interfaccia
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Oggetto che esegue le attività inviate 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
- Derivato
- Attributi
- Implementazioni
Commenti
Oggetto che esegue le attività inviate Runnable . Questa interfaccia consente di separare l'invio di attività dai meccanismi di esecuzione di ogni attività, inclusi i dettagli dell'uso del thread, la pianificazione e così via. Un Executor oggetto viene in genere usato invece di creare in modo esplicito i thread. Ad esempio, anziché richiamare new Thread(new RunnableTask()).start() per ogni set di attività, è possibile usare:
{@code
Executor executor = anExecutor();
executor.execute(new RunnableTask1());
executor.execute(new RunnableTask2());
...}
Tuttavia, l'interfaccia non richiede rigorosamente che l'esecuzione Executor sia asincrona. Nel caso più semplice, un executor può eseguire l'attività inviata immediatamente nel thread del chiamante:
{@code
class DirectExecutor implements Executor {
public void execute(Runnable r) {
r.run();
}
}}
Più in genere, le attività vengono eseguite in un thread diverso dal thread del chiamante. L'executor seguente genera un nuovo thread per ogni attività.
{@code
class ThreadPerTaskExecutor implements Executor {
public void execute(Runnable r) {
new Thread(r).start();
}
}}
Molte Executor implementazioni impongono una sorta di limitazione su come e quando le attività vengono pianificate. L'executor seguente serializza l'invio di attività a un secondo executor, illustrando un executor composito.
{@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);
}
}
}}
Le Executor implementazioni fornite in questo pacchetto implementano ExecutorService, che è un'interfaccia più estesa. La ThreadPoolExecutor classe fornisce un'implementazione estendibile del pool di thread. La Executors classe fornisce metodi factory pratici per questi executor.
Effetti di coerenza della memoria: azioni in un thread prima di inviare un Runnable oggetto a un'operazione Executor<i-before></i> che inizia l'esecuzione, forse in un altro thread.
Aggiunto nella versione 1.5.
per java.util.concurrent.Executor.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.
Proprietà
| Nome | Descrizione |
|---|---|
| Handle |
Ottiene il valore JNI dell'oggetto Android sottostante. (Ereditato da IJavaObject) |
| JniIdentityHashCode |
Restituisce il valore di |
| JniManagedPeerState |
Stato del peer gestito. (Ereditato da IJavaPeerable) |
| JniPeerMembers |
Supporto per l'accesso ai membri e la chiamata. (Ereditato da IJavaPeerable) |
| PeerReference |
Restituisce un JniObjectReference oggetto dell'istanza dell'oggetto di cui è stato eseguito il wrapping Java. (Ereditato da IJavaPeerable) |
Metodi
| Nome | Descrizione |
|---|---|
| Disposed() |
Chiamato quando l'istanza è stata eliminata. (Ereditato da IJavaPeerable) |
| DisposeUnlessReferenced() |
Se non sono presenti riferimenti in sospeso a questa istanza, chiama |
| Execute(IRunnable) |
Esegue il comando specificato in un determinato momento in futuro. |
| Finalized() |
Chiamato quando l'istanza è stata finalizzata. (Ereditato da IJavaPeerable) |
| SetJniIdentityHashCode(Int32) |
Impostare il valore restituito da |
| SetJniManagedPeerState(JniManagedPeerStates) |
Oggetto che esegue le attività inviate |
| SetPeerReference(JniObjectReference) |
Impostare il valore restituito da |
| UnregisterFromRuntime() |
Annullare la registrazione di questa istanza in modo che il runtime non lo restituisca dalle chiamate future Java.Interop.JniRuntime+JniValueManager.PeekValue . (Ereditato da IJavaPeerable) |
Metodi di estensione
| Nome | Descrizione |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Ottiene il nome JNI del tipo dell'istanza |
| JavaAs<TResult>(IJavaPeerable) |
Provare a digitare |
| JavaCast<TResult>(IJavaObject) |
Esegue una conversione del tipo di tipo controllato dal runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Oggetto che esegue le attività inviate |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Provare a digitare |