Comparteix via


AtomicReferenceFieldUpdater Clase

Definición

Utilidad basada en reflexión que permite las actualizaciones atómicas a campos de referencia designados volatile de clases designadas.

[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
Herencia
AtomicReferenceFieldUpdater
Atributos

Comentarios

Utilidad basada en reflexión que permite las actualizaciones atómicas a campos de referencia designados volatile de clases designadas. Esta clase está diseñada para su uso en estructuras de datos atómicas en las que varios campos de referencia del mismo nodo están sujetos de forma independiente a actualizaciones atómicas. Por ejemplo, un nodo de árbol podría declararse como

{@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
            }}

Tenga en cuenta que las garantías del compareAndSet método de esta clase son más débiles que en otras clases atómicas. Dado que esta clase no puede garantizar que todos los usos del campo sean adecuados para fines de acceso atómico, puede garantizar la atomicidad solo con respecto a otras invocaciones de compareAndSet y set en el mismo actualizador.

Los argumentos de objeto para los parámetros de tipo T que no son instancias de la clase pasada a darán lugar a #newUpdater que se produzca una ClassCastException excepción .

Agregado en 1.5.

Documentación de Java para java.util.concurrent.atomic.AtomicReferenceFieldUpdater.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Constructores

AtomicReferenceFieldUpdater()

Constructor do-nothing protegido para su uso por subclases.

AtomicReferenceFieldUpdater(IntPtr, JniHandleOwnership)

Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución.

Propiedades

Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
JniIdentityHashCode

Utilidad basada en reflexión que permite las actualizaciones atómicas a campos de referencia designados volatile de clases designadas.

(Heredado de Object)
JniPeerMembers

Utilidad basada en reflexión que permite las actualizaciones atómicas a campos de referencia designados volatile de clases designadas.

PeerReference

Utilidad basada en reflexión que permite las actualizaciones atómicas a campos de referencia designados volatile de clases designadas.

(Heredado de Object)
ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

Métodos

AccumulateAndGet(Object, Object, IBinaryOperator)

Actualiza de forma atómica (con efectos de memoria especificados por VarHandle#compareAndSet) el campo del objeto especificado administrado por este actualizador con los resultados de aplicar la función dada a los valores actuales y especificados, devolviendo el valor actualizado.

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
CompareAndSet(Object, Object, Object)

Establece de forma atómica el campo del objeto especificado administrado por este actualizador en el valor actualizado especificado si el valor actual es el valor == esperado.

Dispose()

Utilidad basada en reflexión que permite las actualizaciones atómicas a campos de referencia designados volatile de clases designadas.

(Heredado de Object)
Dispose(Boolean)

Utilidad basada en reflexión que permite las actualizaciones atómicas a campos de referencia designados volatile de clases designadas.

(Heredado de Object)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
Get(Object)

Devuelve el valor actual mantenido en el campo del objeto especificado administrado por este actualizador.

GetAndAccumulate(Object, Object, IBinaryOperator)

Actualiza de forma atómica (con efectos de memoria especificados por VarHandle#compareAndSet) el campo del objeto dado administrado por este actualizador con los resultados de aplicar la función dada a los valores actuales y especificados, devolviendo el valor anterior.

GetAndSet(Object, Object)

Establece de forma atómica el campo del objeto especificado administrado por este actualizador en el valor especificado y devuelve el valor anterior.

GetAndUpdate(Object, IUnaryOperator)

Actualiza de forma atómica (con efectos de memoria especificados por VarHandle#compareAndSet) el campo del objeto especificado administrado por este actualizador con los resultados de aplicar la función especificada, devolviendo el valor anterior.

GetHashCode()

Devuelve un valor de código hash del objeto.

(Heredado de Object)
JavaFinalize()

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
LazySet(Object, Object)

Finalmente establece el campo del objeto especificado administrado por este actualizador en el valor actualizado especificado.

NewUpdater(Class, Class, String)

Crea y devuelve un actualizador para objetos con el campo especificado.

Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
Set(Object, Object)

Establece el campo del objeto especificado administrado por este actualizador en el valor actualizado especificado.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
ToArray<T>()

Utilidad basada en reflexión que permite las actualizaciones atómicas a campos de referencia designados volatile de clases designadas.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto.

(Heredado de Object)
UnregisterFromRuntime()

Utilidad basada en reflexión que permite las actualizaciones atómicas a campos de referencia designados volatile de clases designadas.

(Heredado de Object)
UpdateAndGet(Object, IUnaryOperator)

Actualiza de forma atómica (con efectos de memoria especificados por VarHandle#compareAndSet) el campo del objeto especificado administrado por este actualizador con los resultados de aplicar la función especificada, devolviendo el valor actualizado.

Wait()

Hace que el subproceso actual espere hasta que se despierta, normalmente por ser em notificado/em> o <em>interrumpido</em>.<><

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
WeakCompareAndSet(Object, Object, Object)

Establece de forma atómica el campo del objeto especificado administrado por este actualizador en el valor actualizado especificado si el valor actual es el valor == esperado.

Implementaciones de interfaz explícitas

IJavaPeerable.Disposed()

Utilidad basada en reflexión que permite las actualizaciones atómicas a campos de referencia designados volatile de clases designadas.

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Utilidad basada en reflexión que permite las actualizaciones atómicas a campos de referencia designados volatile de clases designadas.

(Heredado de Object)
IJavaPeerable.Finalized()

Utilidad basada en reflexión que permite las actualizaciones atómicas a campos de referencia designados volatile de clases designadas.

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

Utilidad basada en reflexión que permite las actualizaciones atómicas a campos de referencia designados volatile de clases designadas.

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Utilidad basada en reflexión que permite las actualizaciones atómicas a campos de referencia designados volatile de clases designadas.

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Utilidad basada en reflexión que permite las actualizaciones atómicas a campos de referencia designados volatile de clases designadas.

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Utilidad basada en reflexión que permite las actualizaciones atómicas a campos de referencia designados volatile de clases designadas.

(Heredado de Object)

Métodos de extensión

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Utilidad basada en reflexión que permite las actualizaciones atómicas a campos de referencia designados volatile de clases designadas.

GetJniTypeName(IJavaPeerable)

Utilidad basada en reflexión que permite las actualizaciones atómicas a campos de referencia designados volatile de clases designadas.

Se aplica a