AtomicReferenceFieldUpdater Classe

Definição

Um utilitário baseado em reflexão que permite atualizações atômicas para campos de referência designados volatile de classes 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
Herança
AtomicReferenceFieldUpdater
Atributos

Comentários

Um utilitário baseado em reflexão que permite atualizações atômicas para campos de referência designados volatile de classes designadas. Essa classe foi projetada para uso em estruturas de dados atômicas nas quais vários campos de referência do mesmo nó estão independentemente sujeitos a atualizações atômicas. Por exemplo, um nó de árvore pode ser declarado 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
            }}

Observe que as garantias do compareAndSet método nessa classe são mais fracas do que em outras classes atômicas. Como essa classe não pode garantir que todos os usos do campo sejam apropriados para fins de acesso atômico, ela pode garantir a atomicidade apenas em relação a outras invocações de compareAndSet e set no mesmo atualizador.

Argumentos de objeto para parâmetros de tipo T que não são instâncias da classe passada #newUpdater resultarão em uma ClassCastException geração.

Adicionado em 1.5.

Documentação Java para java.util.concurrent.atomic.AtomicReferenceFieldUpdater.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Construtores

Nome Description
AtomicReferenceFieldUpdater()

Construtor de não fazer nada protegido para uso por subclasses.

AtomicReferenceFieldUpdater(IntPtr, JniHandleOwnership)

Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo runtime.

Propriedades

Nome Description
Class

Retorna a classe de runtime deste Object.

(Herdado de Object)
Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
JniIdentityHashCode

Obtém o código de hash de identidade atribuído a esse par Java pelo runtime de interoperabilidade.

(Herdado de Object)
JniManagedPeerState

Um utilitário baseado em reflexão que permite atualizações atômicas para campos de referência designados volatile de classes designadas.

(Herdado de JavaObject)
JniPeerMembers

Obtém os metadados JNI usados para invocar membros desse par Java.

PeerReference

Obtém a referência de objeto JNI para este par Java.

(Herdado de Object)
ThresholdClass

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

ThresholdType

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

Métodos

Nome Description
AccumulateAndGet(Object, Object, IBinaryOperator)

Atualiza atomicamente (com efeitos de memória conforme especificado por VarHandle#compareAndSet) o campo do objeto fornecido gerenciado por esse atualizador com os resultados da aplicação da função determinada aos valores atuais e fornecidos, retornando o valor atualizado.

Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
CompareAndSet(Object, Object, Object)

Define atomicamente o campo do objeto fornecido gerenciado por esse atualizador para o valor atualizado fornecido se o valor == atual for o valor esperado.

Construct(JniObjectReference, JniObjectReferenceOptions)

Um utilitário baseado em reflexão que permite atualizações atômicas para campos de referência designados volatile de classes designadas.

(Herdado de JavaObject)
Dispose()

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
Dispose(Boolean)

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
DisposeUnlessReferenced()

Um utilitário baseado em reflexão que permite atualizações atômicas para campos de referência designados volatile de classes designadas.

(Herdado de JavaObject)
Equals(Object)

Um utilitário baseado em reflexão que permite atualizações atômicas para campos de referência designados volatile de classes designadas.

(Herdado de JavaObject)
Equals(Object)

Indica se algum outro objeto é "igual a" este.

(Herdado de Object)
Get(Object)

Retorna o valor atual mantido no campo do objeto fornecido gerenciado por este atualizador.

GetAndAccumulate(Object, Object, IBinaryOperator)

Atualiza atomicamente (com efeitos de memória conforme especificado por VarHandle#compareAndSet) o campo do objeto fornecido gerenciado por esse atualizador com os resultados da aplicação da função determinada aos valores atuais e fornecidos, retornando o valor anterior.

GetAndSet(Object, Object)

Define atomicamente o campo do objeto fornecido gerenciado por esse atualizador como o valor fornecido e retorna o valor antigo.

GetAndUpdate(Object, IUnaryOperator)

Atualiza atomicamente (com efeitos de memória conforme especificado por VarHandle#compareAndSet) o campo do objeto fornecido gerenciado por esse atualizador com os resultados da aplicação da função determinada, retornando o valor anterior.

GetHashCode()

Retorna um valor de código hash para o objeto.

(Herdado de Object)
JavaFinalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

(Herdado de Object)
LazySet(Object, Object)

Eventualmente, define o campo do objeto fornecido gerenciado por esse atualizador como o valor atualizado fornecido.

NewUpdater(Class, Class, String)

Cria e retorna um atualizador para objetos com o campo fornecido.

Notify()

Ativa um único thread que está aguardando no monitor deste objeto.

(Herdado de Object)
NotifyAll()

Ativa todos os threads que estão aguardando no monitor deste objeto.

(Herdado de Object)
Set(Object, Object)

Define o campo do objeto fornecido gerenciado por esse atualizador como o valor atualizado fornecido.

SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle

(Herdado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Um utilitário baseado em reflexão que permite atualizações atômicas para campos de referência designados volatile de classes designadas.

(Herdado de JavaObject)
ToArray<T>()

Cria uma matriz gerenciada com base nesse wrapper de matriz Java.

(Herdado de Object)
ToString()

Retorna uma representação de cadeia de caracteres do objeto.

(Herdado de Object)
UnregisterFromRuntime()

Cancela o registro desse par Java do runtime de interoperabilidade.

(Herdado de Object)
UpdateAndGet(Object, IUnaryOperator)

Atualiza atomicamente (com efeitos de memória conforme especificado por VarHandle#compareAndSet) o campo do objeto fornecido gerenciado por esse atualizador com os resultados da aplicação da função determinada, retornando o valor atualizado.

Wait()

Faz com que o thread atual aguarde até ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<>

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)
WeakCompareAndSet(Object, Object, Object)

Define atomicamente o campo do objeto fornecido gerenciado por esse atualizador para o valor atualizado fornecido se o valor == atual for o valor esperado.

Implantações explícitas de interface

Nome Description
IJavaPeerable.Disposed()

Um utilitário baseado em reflexão que permite atualizações atômicas para campos de referência designados volatile de classes designadas.

(Herdado de JavaObject)
IJavaPeerable.Finalized()

Um utilitário baseado em reflexão que permite atualizações atômicas para campos de referência designados volatile de classes designadas.

(Herdado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Um utilitário baseado em reflexão que permite atualizações atômicas para campos de referência designados volatile de classes designadas.

(Herdado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Um utilitário baseado em reflexão que permite atualizações atômicas para campos de referência designados volatile de classes designadas.

(Herdado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Um utilitário baseado em reflexão que permite atualizações atômicas para campos de referência designados volatile de classes designadas.

(Herdado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Um utilitário baseado em reflexão que permite atualizações atômicas para campos de referência designados volatile de classes designadas.

(Herdado de JavaObject)

Métodos de Extensão

Nome Description
GetJniTypeName(IJavaPeerable)

Obtém o nome JNI do tipo da instância self.

JavaAs<TResult>(IJavaPeerable)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo verificada pelo tempo de execução do Android.

JavaCast<TResult>(IJavaObject)

Um utilitário baseado em reflexão que permite atualizações atômicas para campos de referência designados volatile de classes designadas.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

Aplica-se a