AtomicReferenceFieldUpdater 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 클래스의 지정된 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
- 상속
- 특성
설명
지정된 클래스의 지정된 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
메서드 보장은 다른 원자성 클래스보다 약합니다. 이 클래스는 필드의 모든 사용이 원자성 액세스 목적에 적합한지 확인할 수 없으므로 동일한 업데이트 프로그램의 다른 호출 compareAndSet
과 set
관련하여 원자성을 보장할 수 있습니다.
전달된 #newUpdater
클래스의 인스턴스가 아닌 형식 T
의 매개 변수에 대한 개체 인수로 인해 ClassCastException
throw됩니다.
1.5에 추가되었습니다.
에 대한 java.util.concurrent.atomic.AtomicReferenceFieldUpdater
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
생성자
AtomicReferenceFieldUpdater() |
서브클래스에 사용할 보호된 do-nothing 생성자입니다. |
AtomicReferenceFieldUpdater(IntPtr, JniHandleOwnership) |
JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다. |
속성
Class |
이 |
Handle |
기본 Android 인스턴스에 대한 핸들입니다. (다음에서 상속됨 Object) |
JniIdentityHashCode |
지정된 클래스의 지정된 |
JniPeerMembers |
지정된 클래스의 지정된 |
PeerReference |
지정된 클래스의 지정된 |
ThresholdClass |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
ThresholdType |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
메서드
AccumulateAndGet(Object, Object, IBinaryOperator) |
지정된 함수를 현재 및 지정된 값에 |
Clone() |
이 개체의 복사본을 만들고 반환합니다. (다음에서 상속됨 Object) |
CompareAndSet(Object, Object, Object) |
현재 값이 예상 값인 경우 이 업데이트자가 관리하는 지정된 개체의 필드를 지정된 업데이트된 값 |
Dispose() |
지정된 클래스의 지정된 |
Dispose(Boolean) |
지정된 클래스의 지정된 |
Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
Get(Object) |
이 업데이트 관리자가 관리하는 지정된 개체의 필드에 있는 현재 값을 반환합니다. |
GetAndAccumulate(Object, Object, IBinaryOperator) |
지정된 함수를 현재 및 지정된 값에 |
GetAndSet(Object, Object) |
이 업데이트자가 관리하는 지정된 개체의 필드를 지정된 값으로 원자성으로 설정하고 이전 값을 반환합니다. |
GetAndUpdate(Object, IUnaryOperator) |
지정된 함수를 적용하고 이전 값을 반환한 결과로 이 업데이트자가 관리하는 지정된 개체의 필드를 원자성으로 업데이트합니다(지정된 |
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>() |
지정된 클래스의 지정된 |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
UnregisterFromRuntime() |
지정된 클래스의 지정된 |
UpdateAndGet(Object, IUnaryOperator) |
지정된 함수를 적용하고 업데이트된 |
Wait() |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 <><중단/종료>합니다.> (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
WeakCompareAndSet(Object, Object, Object) |
현재 값이 예상 값인 경우 이 업데이트자가 관리하는 지정된 개체의 필드를 지정된 업데이트된 값 |
명시적 인터페이스 구현
IJavaPeerable.Disposed() |
지정된 클래스의 지정된 |
IJavaPeerable.DisposeUnlessReferenced() |
지정된 클래스의 지정된 |
IJavaPeerable.Finalized() |
지정된 클래스의 지정된 |
IJavaPeerable.JniManagedPeerState |
지정된 클래스의 지정된 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
지정된 클래스의 지정된 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
지정된 클래스의 지정된 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
지정된 클래스의 지정된 |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
지정된 클래스의 지정된 |
GetJniTypeName(IJavaPeerable) |
지정된 클래스의 지정된 |