Share via


AtomicReferenceFieldUpdater 클래스

정의

지정된 클래스의 지정된 volatile 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다.

[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
상속
AtomicReferenceFieldUpdater
특성

설명

지정된 클래스의 지정된 volatile 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다. 이 클래스는 동일한 노드의 여러 참조 필드가 독립적으로 원자성 업데이트가 적용되는 원자성 데이터 구조에 사용하도록 설계되었습니다. 예를 들어 트리 노드는 로 선언될 수 있습니다.

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

이 클래스의 compareAndSet 메서드 보장은 다른 원자성 클래스보다 약합니다. 이 클래스는 필드의 모든 사용이 원자성 액세스 목적에 적합한지 확인할 수 없으므로 동일한 업데이트 프로그램의 및 set 호출 compareAndSet 에 대해서만 원자성을 보장할 수 있습니다.

에 전달된 #newUpdater 클래스의 인스턴스가 아닌 형식 T 의 매개 변수에 대한 개체 인수로 인해 이 ClassCastException throw됩니다.

1.5에 추가되었습니다.

에 대한 Java 설명서입니다 java.util.concurrent.atomic.AtomicReferenceFieldUpdater.

이 페이지의 일부는 만들고 공유하며 에 설명된 용어에 따라 사용되는 작업을 기반으로 수정됩니다.

생성자

AtomicReferenceFieldUpdater()

서브클래스에 사용할 보호된 do-nothing 생성자입니다.

AtomicReferenceFieldUpdater(IntPtr, JniHandleOwnership)

JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.

속성

Class

Object의 런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
Handle

기본 Android instance 대한 핸들입니다.

(다음에서 상속됨 Object)
JniIdentityHashCode

지정된 클래스의 지정된 volatile 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다.

(다음에서 상속됨 Object)
JniPeerMembers

지정된 클래스의 지정된 volatile 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다.

PeerReference

지정된 클래스의 지정된 volatile 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다.

(다음에서 상속됨 Object)
ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

메서드

AccumulateAndGet(Object, Object, IBinaryOperator)

지정된 함수를 현재 및 지정된 값에 VarHandle#compareAndSet적용하고 업데이트된 값을 반환한 결과로 이 업데이트 관리자가 관리하는 지정된 개체의 필드를 원자성으로 업데이트합니다(에 지정된 메모리 효과 포함).

Clone()

이 개체의 복사본을 만들고 반환합니다.

(다음에서 상속됨 Object)
CompareAndSet(Object, Object, Object)

현재 값이 예상 값인 경우 이 업데이트에서 관리하는 지정된 개체의 필드를 지정된 업데이트된 값 == 으로 원자적으로 설정합니다.

Dispose()

지정된 클래스의 지정된 volatile 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다.

(다음에서 상속됨 Object)
Dispose(Boolean)

지정된 클래스의 지정된 volatile 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다.

(다음에서 상속됨 Object)
Equals(Object)

다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다.

(다음에서 상속됨 Object)
Get(Object)

이 업데이트에서 관리하는 지정된 개체의 필드에 있는 현재 값을 반환합니다.

GetAndAccumulate(Object, Object, IBinaryOperator)

지정된 함수를 현재 및 지정된 값에 VarHandle#compareAndSet적용한 결과와 함께 이 업데이트 관리자가 관리하는 지정된 개체의 필드를 원자성으로 업데이트하고 이전 값을 반환합니다.

GetAndSet(Object, Object)

이 업데이트에서 관리하는 지정된 개체의 필드를 지정된 값으로 원자성으로 설정하고 이전 값을 반환합니다.

GetAndUpdate(Object, IUnaryOperator)

지정된 함수를 적용하고 이전 값을 반환한 결과로 이 업데이트 관리자가 관리하는 지정된 개체의 필드를 원자성으로 업데이트합니다(에 지정된 VarHandle#compareAndSet메모리 효과 포함).

GetHashCode()

개체의 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
LazySet(Object, Object)

결국 이 업데이트에서 관리하는 지정된 개체의 필드를 지정된 업데이트된 값으로 설정합니다.

NewUpdater(Class, Class, String)

지정된 필드가 있는 개체에 대한 업데이트 관리자를 만들고 반환합니다.

Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

(다음에서 상속됨 Object)
NotifyAll()

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

(다음에서 상속됨 Object)
Set(Object, Object)

이 업데이트에서 관리하는 지정된 개체의 필드를 지정된 업데이트된 값으로 설정합니다.

SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
ToArray<T>()

지정된 클래스의 지정된 volatile 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다.

(다음에서 상속됨 Object)
ToString()

개체의 문자열 표현을 반환합니다.

(다음에서 상속됨 Object)
UnregisterFromRuntime()

지정된 클래스의 지정된 volatile 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다.

(다음에서 상속됨 Object)
UpdateAndGet(Object, IUnaryOperator)

지정된 함수를 적용하고 업데이트된 값을 반환한 결과로 이 업데이트 관리자가 관리하는 지정된 개체의 필드를 원자성으로 업데이트합니다(에 지정된 VarHandle#compareAndSet메모리 효과 포함).

Wait()

현재 스레드가 각성될 때까지 대기하도록 합니다. 일반적으로 <알림을<> 받>거나<<> 중단/em>합니다.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)
WeakCompareAndSet(Object, Object, Object)

현재 값이 예상 값인 경우 이 업데이트에서 관리하는 지정된 개체의 필드를 지정된 업데이트된 값 == 으로 원자적으로 설정합니다.

명시적 인터페이스 구현

IJavaPeerable.Disposed()

지정된 클래스의 지정된 volatile 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다.

(다음에서 상속됨 Object)
IJavaPeerable.DisposeUnlessReferenced()

지정된 클래스의 지정된 volatile 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다.

(다음에서 상속됨 Object)
IJavaPeerable.Finalized()

지정된 클래스의 지정된 volatile 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다.

(다음에서 상속됨 Object)
IJavaPeerable.JniManagedPeerState

지정된 클래스의 지정된 volatile 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

지정된 클래스의 지정된 volatile 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

지정된 클래스의 지정된 volatile 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

지정된 클래스의 지정된 volatile 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다.

(다음에서 상속됨 Object)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

지정된 클래스의 지정된 volatile 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다.

GetJniTypeName(IJavaPeerable)

지정된 클래스의 지정된 volatile 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다.

적용 대상