Thread Classe
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.
Un thread è un thread di esecuzione in un programma.
[Android.Runtime.Register("java/lang/Thread", DoNotGenerateAcw=true)]
public class Thread : Java.Lang.Object, IDisposable, Java.Lang.IRunnable
[<Android.Runtime.Register("java/lang/Thread", DoNotGenerateAcw=true)>]
type Thread = class
inherit Object
interface IRunnable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Ereditarietà
- Derivato
- Attributi
- Implementazioni
Commenti
Un thread è un thread di esecuzione in un programma. La macchina virtuale Java consente a un'applicazione di avere più thread di esecuzione in esecuzione simultaneamente.
Ogni thread ha una priorità. I thread con priorità più alta vengono eseguiti in preferenza ai thread con priorità più bassa. Ogni thread può anche essere contrassegnato come daemon. Quando il codice in esecuzione in un thread crea un nuovo Thread oggetto, la priorità del nuovo thread è inizialmente impostata come uguale alla priorità del thread di creazione ed è un thread daemon se e solo se il thread di creazione è un daemon.
Quando viene avviata una macchina virtuale Java, è in genere presente un singolo thread non daemon , che in genere chiama il metodo denominato main di una classe designata. La macchina virtuale Java continua a eseguire thread fino a quando non si verifica uno dei seguenti: <ul><li>Il exit metodo della classe Runtime è stato chiamato e il gestore della sicurezza ha consentito l'esecuzione dell'operazione di uscita.
<li>Tutti i thread che non sono thread daemon sono morti, restituendo dalla chiamata al run metodo o generando un'eccezione che si propaga oltre il run metodo .
</ul>
Esistono due modi per creare un nuovo thread di esecuzione. Uno consiste nel dichiarare una classe come sottoclasse di Thread. Questa sottoclasse deve eseguire l'override del run metodo della classe Thread. È quindi possibile allocare e avviare un'istanza della sottoclasse. Ad esempio, un thread che calcola numeri primi maggiori di un valore dichiarato può essere scritto come segue: <hr><blockquote>
class PrimeThread extends Thread {
long minPrime;
PrimeThread(long minPrime) {
this.minPrime = minPrime;
}
public void run() {
// compute primes larger than minPrime
. . .
}
}
</blockquote><hr>
Il codice seguente crea quindi un thread e avvia l'esecuzione: <blockquote>
PrimeThread p = new PrimeThread(143);
p.start();
</blockquote>
L'altro modo per creare un thread consiste nel dichiarare una classe che implementa l'interfaccia Runnable . Tale classe implementa quindi il run metodo . Un'istanza della classe può quindi essere allocata, passata come argomento durante la creazione Threaddi e l'avvio. Lo stesso esempio in questo altro stile è simile al seguente: <hr><blockquote>
class PrimeRun implements Runnable {
long minPrime;
PrimeRun(long minPrime) {
this.minPrime = minPrime;
}
public void run() {
// compute primes larger than minPrime
. . .
}
}
</blockquote><hr>
Il codice seguente crea quindi un thread e avvia l'esecuzione: <blockquote>
PrimeRun p = new PrimeRun(143);
new Thread(p).start();
</blockquote>
Ogni thread ha un nome a scopo di identificazione. Più thread possono avere lo stesso nome. Se un nome non viene specificato quando viene creato un thread, viene generato un nuovo nome.
Se non diversamente specificato, il passaggio di un null argomento a un costruttore o a un metodo in questa classe genererà un'eccezione NullPointerException .
Aggiunta nella versione 1.0.
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.
Costruttori
| Nome | Descrizione |
|---|---|
| Thread() |
Alloca un nuovo |
| Thread(Action, String) |
Inizializza una nuova istanza di |
| Thread(Action) |
Inizializza una nuova istanza di |
| Thread(IntPtr, JniHandleOwnership) |
Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime. |
| Thread(IRunnable, String) |
Alloca un nuovo |
| Thread(IRunnable) |
Alloca un nuovo |
| Thread(String) |
Alloca un nuovo |
| Thread(ThreadGroup, Action, String, Int64) |
Inizializza una nuova istanza di |
| Thread(ThreadGroup, Action, String) |
Inizializza una nuova istanza di |
| Thread(ThreadGroup, Action) |
Inizializza una nuova istanza di |
| Thread(ThreadGroup, IRunnable, String, Int64, Boolean) |
Alloca un nuovo |
| Thread(ThreadGroup, IRunnable, String, Int64) |
Alloca un nuovo |
| Thread(ThreadGroup, IRunnable, String) |
Alloca un nuovo |
| Thread(ThreadGroup, IRunnable) |
Alloca un nuovo |
| Thread(ThreadGroup, String) |
Alloca un nuovo |
Campi
| Nome | Descrizione |
|---|---|
| MaxPriority |
Priorità massima che un thread può avere. |
| MinPriority |
Priorità minima che un thread può avere. |
| NormPriority |
Priorità predefinita assegnata a un thread. |
Proprietà
| Nome | Descrizione |
|---|---|
| AllStackTraces |
Restituisce una mappa delle tracce dello stack per tutti i thread in tempo reale. |
| Class |
Restituisce la classe di runtime di questo |
| ContextClassLoader |
Restituisce il contesto |
| Daemon |
Verifica se questo thread è un thread daemon. |
| DefaultUncaughtExceptionHandler |
Restituisce il gestore predefinito richiamato quando un thread termina improvvisamente a causa di un'eccezione non rilevata. -oppure- Impostare il gestore predefinito richiamato quando un thread termina bruscamente a causa di un'eccezione non rilevata e non è stato definito alcun altro gestore per tale thread. |
| Handle |
Handle per l'istanza di Android sottostante. (Ereditato da Object) |
| Id |
Restituisce l'identificatore di questo thread. |
| IsAlive |
Verifica se il thread è attivo. |
| IsInterrupted |
Verifica se il thread è stato interrotto. |
| IsVirtual |
Restituisce |
| JniIdentityHashCode |
Ottiene il codice hash di identità assegnato a questo Java peer dal runtime di interoperabilità. (Ereditato da Object) |
| JniManagedPeerState |
Un thread è un thread di esecuzione in un programma. (Ereditato da JavaObject) |
| JniPeerMembers |
Ottiene i metadati JNI usati per richiamare i membri di questo peer Java. |
| Name |
Restituisce il nome del thread. -oppure- Modifica il nome di questo thread in modo che sia uguale all'argomento |
| PeerReference |
Ottiene il riferimento all'oggetto JNI per questo peer Java. (Ereditato da Object) |
| Priority |
Restituisce la priorità del thread. |
| ThreadGroup |
Restituisce il gruppo di thread a cui appartiene questo thread. |
| ThresholdClass |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
| ThresholdType |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
| UncaughtExceptionHandler |
Restituisce il gestore richiamato quando questo thread termina improvvisamente a causa di un'eccezione non rilevata. -oppure- Impostare il gestore richiamato quando questo thread termina bruscamente a causa di un'eccezione non rilevata. |
Metodi
| Nome | Descrizione |
|---|---|
| ActiveCount() |
Restituisce una stima del numero di thread attivi nel file Java del thread corrente. |
| CheckAccess() |
Determina se il thread attualmente in esecuzione dispone dell'autorizzazione per modificare questo thread. |
| Clone() |
Crea e restituisce una copia di questo oggetto. (Ereditato da Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Un thread è un thread di esecuzione in un programma. (Ereditato da JavaObject) |
| CountStackFrames() |
Obsoleti.
Genera l'eccezione |
| CurrentThread() |
Restituisce un riferimento all'oggetto thread attualmente in esecuzione. |
| Destroy() |
Obsoleti.
Genera l'eccezione |
| Dispose() |
Rilascia le risorse contenute in questo peer Java. (Ereditato da Object) |
| Dispose(Boolean) |
Rilascia le risorse contenute in questo peer Java. (Ereditato da Object) |
| DisposeUnlessReferenced() |
Un thread è un thread di esecuzione in un programma. (Ereditato da JavaObject) |
| DumpStack() |
Stampa una traccia dello stack del thread corrente nel flusso di errore standard. |
| Enumerate(Thread[]) |
Copia nella matrice specificata ogni thread attivo nel gruppo di thread del thread corrente e nei relativi sottogruppi. |
| Equals(Object) |
Un thread è un thread di esecuzione in un programma. (Ereditato da JavaObject) |
| Equals(Object) |
Indica se un altro oggetto è "uguale a" questo. (Ereditato da Object) |
| GetHashCode() |
Restituisce un valore di codice hash per l'oggetto . (Ereditato da Object) |
| GetStackTrace() |
Restituisce una matrice di elementi di analisi dello stack che rappresentano il dump dello stack di questo thread. |
| GetState() |
Restituisce lo stato del thread. |
| HoldsLock(Object) |
Restituisce |
| Interrupt() |
Interrompe questo thread. |
| Interrupted() |
Verifica se il thread corrente è stato interrotto. |
| JavaFinalize() |
Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto . (Ereditato da Object) |
| Join() |
Attende che questo thread muova. |
| Join(Int64, Int32) |
Attende al massimo |
| Join(Int64) |
Attende al massimo |
| Notify() |
Riattiva un singolo thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
| NotifyAll() |
Riattiva tutti i thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
| OnSpinWait() |
Indica che il chiamante non è momentaneamente in grado di progredire, fino all'occorrenza di una o più azioni nella parte di altre attività. |
| Resume() |
Obsoleti.
Genera l'eccezione |
| Run() |
Se questo thread è stato costruito utilizzando un oggetto run separato |
| SetHandle(IntPtr, JniHandleOwnership) |
Imposta la proprietà Handle. (Ereditato da Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Un thread è un thread di esecuzione in un programma. (Ereditato da JavaObject) |
| Sleep(Int64, Int32) |
Fa sì che il thread attualmente in esecuzione sia in sospensione (temporaneamente interrompa l'esecuzione) per il numero specificato di millisecondi più il numero specificato di nanosecondi, soggetto alla precisione e all'accuratezza dei timer di sistema e delle utilità di pianificazione. |
| Sleep(Int64) |
Determina la sospensione del thread attualmente in esecuzione (interruzione temporanea dell'esecuzione) per il numero specificato di millisecondi, soggetto alla precisione e all'accuratezza dei timer di sistema e delle utilità di pianificazione. |
| Start() |
Fa sì che questo thread inizi l'esecuzione; la macchina virtuale Java chiama il |
| Stop() |
Obsoleti.
Genera l'eccezione |
| Stop(Throwable) |
Obsoleti.
Genera l'eccezione |
| Suspend() |
Obsoleti.
Genera l'eccezione |
| ThreadId() |
Restituisce l'identificatore di questo thread. |
| ToArray<T>() |
Crea una matrice gestita da questo wrapper di matrice Java. (Ereditato da Object) |
| ToString() |
Restituisce una rappresentazione di stringa dell'oggetto . (Ereditato da Object) |
| UnregisterFromRuntime() |
Annulla la registrazione di questo Java peer dal runtime di interoperabilità. (Ereditato da Object) |
| Wait() |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>. (Ereditato da Object) |
| Wait(Int64, Int32) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
| Wait(Int64) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
| Yield() |
Suggerimento all'utilità di pianificazione che il thread corrente è disposto a produrre l'uso corrente di un processore. |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IJavaPeerable.Disposed() |
Un thread è un thread di esecuzione in un programma. (Ereditato da JavaObject) |
| IJavaPeerable.Finalized() |
Un thread è un thread di esecuzione in un programma. (Ereditato da JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Un thread è un thread di esecuzione in un programma. (Ereditato da JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Un thread è un thread di esecuzione in un programma. (Ereditato da JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Un thread è un thread di esecuzione in un programma. (Ereditato da JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Un thread è un thread di esecuzione in un programma. (Ereditato da JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
Un thread è un thread di esecuzione in un programma. |
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) |
Un thread è un thread di esecuzione in un programma. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Provare a digitare |