JavaTM Platform
Standard Ed. 6

java.util.concurrent.atomic
클래스 AtomicMarkableReference<V>

java.lang.Object 
  상위를 확장 java.util.concurrent.atomic.AtomicMarkableReference<V>
형태 파라미터:
V - 이 참조에 의해 참조되는 객체의 형태


public class AtomicMarkableReference<V>
extends Object

AtomicMarkableReference 는, 원자적으로 갱신 가능한 마크 비트와 함께, 객체 참조를 관리합니다.  

구현상의 주의. 이 구현은, 「상자포장」된 [참조, boolean 치] 의 페어를 나타내는 내부 객체를 작성하는 것으로써, 마크 가능한 참조를 관리합니다.

도입된 버젼:
1.5

생성자 의 개요
AtomicMarkableReference (V  initialRef, boolean initialMark)
          지정된 초기 파라미터를 사용해, 새로운 AtomicMarkableReference 를 작성합니다.
 
메소드의 개요
 boolean attemptMark (V  expectedReference, boolean newMark)
           「현재의 참조 == 예상되는 참조」인 경우는, 마크의 값이 지정된 갱신치에 원자적으로 설정합니다.
 boolean compareAndSet (V  expectedReference, V  newReference, boolean expectedMark, boolean newMark)
           「현재의 참조 == 예상되는 참조」이며, 현재의 마크가 예상되는 마크에 동일한 경우, 참조 및 마크의 값이 지정된 갱신치에 원자적으로 설정합니다.
 V get (boolean[] markHolder)
          참조 및 마크의 현재가를 돌려줍니다.
 V getReference ()
          참조의 현재가를 돌려줍니다.
 boolean isMarked ()
          마크의 현재가를 돌려줍니다.
 void set (V  newReference, boolean newMark)
          참조 및 마크의 값을 무조건 설정합니다.
 boolean weakCompareAndSet (V  expectedReference, V  newReference, boolean expectedMark, boolean newMark)
           「현재의 참조 == 예상되는 참조」이며, 현재의 마크가 예상되는 마크에 동일한 경우, 참조 및 마크의 값이 지정된 갱신치에 원자적으로 설정합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

AtomicMarkableReference

public AtomicMarkableReference(V  initialRef,
                               boolean initialMark)
지정된 초기 파라미터를 사용해, 새로운 AtomicMarkableReference 를 작성합니다.

파라미터:
initialRef - 초기 참조
initialMark - 초기 마크
메소드의 상세

getReference

public V  getReference()
참조의 현재가를 돌려줍니다.

반환값:
참조의 현재가

isMarked

public boolean isMarked()
마크의 현재가를 돌려줍니다.

반환값:
마크의 현재가

get

public V  get(boolean[] markHolder)
참조 및 마크의 현재가를 돌려줍니다. 일반적으로의 사용법은 boolean[1] holder; ref = v.get(holder); 입니다.

파라미터:
markHolder - 1 이상의 사이즈의 배열. 돌려줄 때에,markholder[0] 은 마크의 값을 보관 유지한다
반환값:
참조의 현재가

weakCompareAndSet

public boolean weakCompareAndSet(V  expectedReference,
                                 V  newReference,
                                 boolean expectedMark,
                                 boolean newMark)
「현재의 참조 == 예상되는 참조」이며, 현재의 마크가 예상되는 마크에 동일한 경우, 참조 및 마크의 값이 지정된 갱신치에 원자적으로 설정합니다.

외관상 실패할 가능성이 있어, 순서부 보증을 제공하지 않기 때문에,compareAndSet 대신에 사용하는 것은 거의 없습니다.

파라미터:
expectedReference - 참조가 예상되는 값
newReference - 참조의 새로운 값
expectedMark - 마크가 예상되는 값
newMark - 마크의 새로운 값
반환값:
성공했을 경우는 true

compareAndSet

public boolean compareAndSet(V  expectedReference,
                             V  newReference,
                             boolean expectedMark,
                             boolean newMark)
「현재의 참조 == 예상되는 참조」이며, 현재의 마크가 예상되는 마크에 동일한 경우, 참조 및 마크의 값이 지정된 갱신치에 원자적으로 설정합니다.

파라미터:
expectedReference - 참조가 예상되는 값
newReference - 참조의 새로운 값
expectedMark - 마크가 예상되는 값
newMark - 마크의 새로운 값
반환값:
성공했을 경우는 true

set

public void set(V  newReference,
                boolean newMark)
참조 및 마크의 값을 무조건 설정합니다.

파라미터:
newReference - 참조의 새로운 값
newMark - 마크의 새로운 값

attemptMark

public boolean attemptMark(V  expectedReference,
                           boolean newMark)
「현재의 참조 == 예상되는 참조」인 경우는, 마크의 값이 지정된 갱신치에 원자적으로 설정합니다. 이 조작의 지정된 호출은 모두, 외관상 실패할 (false 를 돌려줄) 가능성이 있습니다. 다만, 현재의 값이 예상되는 값을 보관 유지해, 값의 설정을 시도하는 것 외의 thread가 존재하지 않는 경우는, 호출이 반복해지는 것으로 최종적으로 성공합니다.

파라미터:
expectedReference - 참조가 예상되는 값
newMark - 마크의 새로운 값
반환값:
성공했을 경우는 true

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.