다음을 통해 공유


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 메서드 보장은 다른 원자성 클래스보다 약합니다. 이 클래스는 필드의 모든 사용이 원자성 액세스 목적에 적합한지 확인할 수 없으므로 동일한 업데이트 프로그램의 다른 호출 compareAndSetset 관련하여 원자성을 보장할 수 있습니다.

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

1.5에 추가되었습니다.

에 대한 java.util.concurrent.atomic.AtomicReferenceFieldUpdaterJava 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

생성자

AtomicReferenceFieldUpdater()

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

AtomicReferenceFieldUpdater(IntPtr, JniHandleOwnership)

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

속성

Class

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

(다음에서 상속됨 Object)
Handle

기본 Android 인스턴스에 대한 핸들입니다.

(다음에서 상속됨 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()

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

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

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

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

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

(다음에서 상속됨 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 참조 필드에 원자성 업데이트를 사용하도록 설정하는 리플렉션 기반 유틸리티입니다.

적용 대상