Condividi tramite


AtomicReferenceFieldUpdater Classe

Definizione

Utilità basata sulla reflection che consente gli aggiornamenti atomici ai campi di riferimento designati volatile delle classi designate.

[Android.Runtime.Register("java/util/concurrent/atomic/AtomicReferenceFieldUpdater", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "T", "V" })]
public abstract class AtomicReferenceFieldUpdater : Java.Lang.Object
[<Android.Runtime.Register("java/util/concurrent/atomic/AtomicReferenceFieldUpdater", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T", "V" })>]
type AtomicReferenceFieldUpdater = class
    inherit Object
Ereditarietà
AtomicReferenceFieldUpdater
Attributi

Commenti

Utilità basata sulla reflection che consente gli aggiornamenti atomici ai campi di riferimento designati volatile delle classi designate. Questa classe è progettata per l'uso in strutture di dati atomiche in cui diversi campi di riferimento dello stesso nodo sono soggetti in modo indipendente agli aggiornamenti atomici. Ad esempio, un nodo della struttura ad albero potrebbe essere dichiarato come

{@code
            class Node {
              private volatile Node left, right;

              private static final AtomicReferenceFieldUpdater<Node, Node> leftUpdater =
                AtomicReferenceFieldUpdater.newUpdater(Node.class, Node.class, "left");
              private static final AtomicReferenceFieldUpdater<Node, Node> rightUpdater =
                AtomicReferenceFieldUpdater.newUpdater(Node.class, Node.class, "right");

              Node getLeft() { return left; }
              boolean compareAndSetLeft(Node expect, Node update) {
                return leftUpdater.compareAndSet(this, expect, update);
              }
              // ... and so on
            }}

Si noti che le garanzie del compareAndSet metodo in questa classe sono più deboli rispetto ad altre classi atomiche. Poiché questa classe non può garantire che tutti gli usi del campo siano appropriati per scopi di accesso atomico, può garantire l'atomicità solo rispetto ad altre chiamate di compareAndSet e set sullo stesso updater.

Gli argomenti dell'oggetto per i parametri di tipo T che non sono istanze della classe passata a #newUpdater genereranno un'eccezione ClassCastException generata.

Aggiunto nella versione 1.5.

Documentazione java per java.util.concurrent.atomic.AtomicReferenceFieldUpdater.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal Android e usato in base ai termini descritti in 2.5 Attribution License Creative Commons 2.5 Attribution License.

Costruttori

AtomicReferenceFieldUpdater()

Costruttore do-nothing protetto per l'uso da parte di sottoclassi.

AtomicReferenceFieldUpdater(IntPtr, JniHandleOwnership)

Costruttore utilizzato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime.

Proprietà

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
JniIdentityHashCode

Utilità basata sulla reflection che consente gli aggiornamenti atomici ai campi di riferimento designati volatile delle classi designate.

(Ereditato da Object)
JniPeerMembers

Utilità basata sulla reflection che consente gli aggiornamenti atomici ai campi di riferimento designati volatile delle classi designate.

PeerReference

Utilità basata sulla reflection che consente gli aggiornamenti atomici ai campi di riferimento designati volatile delle classi designate.

(Ereditato da Object)
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.

Metodi

AccumulateAndGet(Object, Object, IBinaryOperator)

Aggiorna in modo atomico (con effetti di memoria come specificato da VarHandle#compareAndSet) il campo dell'oggetto specificato gestito da questo updater con i risultati dell'applicazione della funzione specificata ai valori correnti e specificati, restituendo il valore aggiornato.

Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
CompareAndSet(Object, Object, Object)

Imposta in modo atomico il campo dell'oggetto specificato gestito da questo updater sul valore aggiornato specificato se il valore == corrente è il valore previsto.

Dispose()

Utilità basata sulla reflection che consente gli aggiornamenti atomici ai campi di riferimento designati volatile delle classi designate.

(Ereditato da Object)
Dispose(Boolean)

Utilità basata sulla reflection che consente gli aggiornamenti atomici ai campi di riferimento designati volatile delle classi designate.

(Ereditato da Object)
Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
Get(Object)

Restituisce il valore corrente contenuto nel campo dell'oggetto specificato gestito da questo updater.

GetAndAccumulate(Object, Object, IBinaryOperator)

Aggiorna in modo atomico (con effetti di memoria come specificato da VarHandle#compareAndSet) il campo dell'oggetto specificato gestito da questo updater con i risultati dell'applicazione della funzione specificata ai valori correnti e specificati, restituendo il valore precedente.

GetAndSet(Object, Object)

Imposta in modo atomico il campo dell'oggetto specificato gestito da questo updater sul valore specificato e restituisce il valore precedente.

GetAndUpdate(Object, IUnaryOperator)

Aggiorna in modo atomico (con effetti di memoria come specificato da VarHandle#compareAndSet) il campo dell'oggetto specificato gestito da questo updater con i risultati dell'applicazione della funzione specificata, restituendo il valore precedente.

GetHashCode()

Restituisce un valore del codice hash per l'oggetto.

(Ereditato da Object)
JavaFinalize()

Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto .

(Ereditato da Object)
LazySet(Object, Object)

Imposta infine il campo dell'oggetto specificato gestito da questo updater sul valore aggiornato specificato.

NewUpdater(Class, Class, String)

Crea e restituisce un updater per gli oggetti con il campo specificato.

Notify()

Riattiva un singolo thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitoraggio di questo oggetto.

(Ereditato da Object)
Set(Object, Object)

Imposta il campo dell'oggetto specificato gestito da questo updater sul valore aggiornato specificato.

SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
ToArray<T>()

Utilità basata sulla reflection che consente gli aggiornamenti atomici ai campi di riferimento designati volatile delle classi designate.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione in formato stringa dell'oggetto.

(Ereditato da Object)
UnregisterFromRuntime()

Utilità basata sulla reflection che consente gli aggiornamenti atomici ai campi di riferimento designati volatile delle classi designate.

(Ereditato da Object)
UpdateAndGet(Object, IUnaryOperator)

Aggiorna in modo atomico (con effetti di memoria come specificato da VarHandle#compareAndSet) il campo dell'oggetto specificato gestito da questo updater con i risultati dell'applicazione della funzione specificata, restituendo il valore aggiornato.

Wait()

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere eseguendo <una>notifica</em> o <em>interrotto</em>.

(Ereditato da Object)
Wait(Int64)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere eseguendo <una notifica</>em> o <em>interrotto</em> o fino a quando non è trascorsa una certa quantità di tempo reale.

(Ereditato da Object)
Wait(Int64, Int32)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere eseguendo <una notifica</>em> o <em>interrotto</em> o fino a quando non è trascorsa una certa quantità di tempo reale.

(Ereditato da Object)
WeakCompareAndSet(Object, Object, Object)

Imposta in modo atomico il campo dell'oggetto specificato gestito da questo updater sul valore aggiornato specificato se il valore == corrente è il valore previsto.

Implementazioni dell'interfaccia esplicita

IJavaPeerable.Disposed()

Utilità basata sulla reflection che consente gli aggiornamenti atomici ai campi di riferimento designati volatile delle classi designate.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Utilità basata sulla reflection che consente gli aggiornamenti atomici ai campi di riferimento designati volatile delle classi designate.

(Ereditato da Object)
IJavaPeerable.Finalized()

Utilità basata sulla reflection che consente gli aggiornamenti atomici ai campi di riferimento designati volatile delle classi designate.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Utilità basata sulla reflection che consente gli aggiornamenti atomici ai campi di riferimento designati volatile delle classi designate.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Utilità basata sulla reflection che consente gli aggiornamenti atomici ai campi di riferimento designati volatile delle classi designate.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Utilità basata sulla reflection che consente gli aggiornamenti atomici ai campi di riferimento designati volatile delle classi designate.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Utilità basata sulla reflection che consente gli aggiornamenti atomici ai campi di riferimento designati volatile delle classi designate.

(Ereditato da Object)

Metodi di estensione

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo verificato dal runtime Android.

JavaCast<TResult>(IJavaObject)

Utilità basata sulla reflection che consente gli aggiornamenti atomici ai campi di riferimento designati volatile delle classi designate.

GetJniTypeName(IJavaPeerable)

Utilità basata sulla reflection che consente gli aggiornamenti atomici ai campi di riferimento designati volatile delle classi designate.

Si applica a