|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.util.AbstractCollection <E>
java.util.AbstractQueue <E>
java.util.concurrent.ConcurrentLinkedQueue<E>
E
- 컬렉션내에 존재하는 요소의 형태public class ConcurrentLinkedQueue<E>
링크 노드에 근거하는, 안 바운드 형식의 thread 세이프인큐입니다. 이 큐는 FIFO (선입선출)로 요소를 순서 붙이고 합니다. 큐의 「선두」는 큐에 들어가 있던 시간이 가장 긴 요소로, 큐의 「말미」는 큐에 들어가 있던 시간이 가장 짧은 요소입니다. 새로운 요소는 큐의 말미에 삽입되어 큐 취득 오퍼레이션에 의해, 큐의 선두의 요소가 취득됩니다. 공통의 컬렉션에의 액세스를 다수의 thread가 공유하는 경우,ConcurrentLinkedQueue 는 선택사항으로서 적절합니다. 이 큐에서는,null 요소는 허가되지 않습니다.
이 구현에서는, 효율이 좋은 「대기 상태가 없다」알고리즘이 사용됩니다. 이 알고리즘에 대해서는,「Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms」 (Maged M. Michael, Michael L. Scott)를 참조해 주세요.
대부분의 컬렉션과는 달라,size 메소드는 일정시간의 오퍼레이션은 아닌 것에 유의해 주세요. 이러한 큐에는 비동기라고 하는 특성이 있기 (위해)때문에, 현재의 요소수를 판정하려면 요소 전체를 횡단(traverse) 할 필요가 있습니다.
이 클래스와 그 반복자는,Collection
및 Iterator
인터페이스의 「옵션」메소드 모든 것을 구현합니다.
메모리 무결성 효과:다른 동시성 처리 컬렉션과 같이, 객체를 ConcurrentLinkedQueue
에 배치하기 전의 thread내의 액션은, 다른 thread에서의 그 요소에의 액세스 또는 ConcurrentLinkedQueue
로부터의 삭제에 계속되는 액션보다「전에 발생」 합니다.
이 클래스는,Java Collections Framework 의 멤버입니다.
생성자 의 개요 | |
---|---|
ConcurrentLinkedQueue ()
ConcurrentLinkedQueue 를 작성합니다. |
|
ConcurrentLinkedQueue (Collection <? extends E > c)
지정된 컬렉션의 요소를 초기 상태로 포함한 (요소는 컬렉션의 반복자의 traversal순서에 추가) ConcurrentLinkedQueue 를 작성합니다. |
메소드의 개요 | ||
---|---|---|
boolean |
add (E e)
큐의 말미에, 지정된 요소를 삽입합니다. |
|
boolean |
contains (Object o)
지정된 요소가 큐에 포함되어 있는 경우에 true 를 돌려줍니다. |
|
boolean |
isEmpty ()
큐에 요소가 없는 경우에 true 를 돌려줍니다. |
|
Iterator <E > |
iterator ()
이 큐내의 요소를 적절한 순서로 반복 처리 하는 반복자를 돌려줍니다. |
|
boolean |
offer (E e)
큐의 말미에, 지정된 요소를 삽입합니다. |
|
E |
peek ()
큐의 선두를 가져옵니다만, 삭제하지 않습니다. |
|
E |
poll ()
큐의 선두를 취득 및 삭제합니다. |
|
boolean |
remove (Object o)
지정된 요소의 단일의 인스턴스가 이 큐에 존재하는 경우는, 큐로부터 삭제합니다. |
|
int |
size ()
큐내에 있는 요소의 수를 돌려줍니다. |
|
Object [] |
toArray ()
큐내의 모든 요소를 적절한 순서로 포함한 배열을 돌려줍니다. |
|
|
toArray (T[] a)
큐내의 모든 요소를 적절한 순서로 포함한 배열을 돌려줍니다. |
클래스 java.util. AbstractQueue 로부터 상속된 메소드 |
---|
addAll , clear , element , remove |
클래스 java.util. AbstractCollection 로부터 상속된 메소드 |
---|
containsAll , removeAll , retainAll , toString |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait |
인터페이스 java.util. Queue 로부터 상속된 메소드 |
---|
element , remove |
인터페이스 java.util. Collection 로부터 상속된 메소드 |
---|
addAll , clear , containsAll , equals , hashCode , removeAll , retainAll |
생성자 의 상세 |
---|
public ConcurrentLinkedQueue()
public ConcurrentLinkedQueue(Collection <? extends E > c)
c
- 초기 상태로 포함한 요소의 컬렉션
NullPointerException
- 지정된 컬렉션 또는, 그 요소중 한쪽이 null 의 경우메소드의 상세 |
---|
public boolean add(E e)
Collection <E >
내의 add
Queue <E >
내의 add
AbstractQueue <E >
내의 add
e
- 추가하는 요소
Collection.add(E)
로 지정되고 있는 대로)
NullPointerException
- 지정된 요소가 null 인 경우public boolean offer(E e)
Queue <E >
내의 offer
e
- 추가하는 요소
Queue.offer(E)
로 지정되고 있는 대로)
NullPointerException
- 지정된 요소가 null 인 경우public E poll()
Queue
의 기술:
Queue <E >
내의 poll
public E peek()
Queue
의 기술:
Queue <E >
내의 peek
public boolean isEmpty()
Collection <E >
내의 isEmpty
AbstractCollection <E >
내의 isEmpty
public int size()
대부분의 컬렉션과는 달라, 이 메소드는 일정시간의 오퍼레이션은 아닌 것에 유의해 주세요. 이러한 큐에는 비동기라고 하는 특성이 있기 (위해)때문에, 현재의 요소수를 판정하려면 O(n) traversal가 필요합니다.
Collection <E >
내의 size
AbstractCollection <E >
내의 size
public boolean contains(Object o)
Collection <E >
내의 contains
AbstractCollection <E >
내의 contains
o
- 이 큐에 포함되어 있는지 어떤지를 조사하는 객체
public boolean remove(Object o)
Collection <E >
내의 remove
AbstractCollection <E >
내의 remove
o
- 큐로부터 삭제되는 요소 (그 요소가 존재하는 경우)
public Object [] toArray()
반환되는 배열에의 참조를 이 큐가 유지하지 않는다고 하는 점으로써, 이 배열은 안전합니다. (즉, 이 메소드는 새로운 배열을 할당할 필요가 있습니다). 이 때문에, 호출측은, 반환된 배열을 자유롭게 변경할 수 있습니다.
메소드는, 배열 베이스의 API 와 컬렉션 베이스의 API 의 사이의 중개역으로서 기능합니다.
Collection <E >
내의 toArray
AbstractCollection <E >
내의 toArray
public <T> T[] toArray(T[] a)
큐가 지정된 배열에 들어가, 그 배열에 한층 더 여유가 있는 경우 (즉, 배열이 큐보다 많은 요소를 가지는 경우), 그 배열내에서 큐의 끝보다 나머지의 요소는 null 로 설정됩니다.
toArray()
메소드와 같이, 이 메소드는, 배열 베이스의 API 와 컬렉션 베이스의 API 의 사이의 중개역으로서 기능합니다. 게다가 이 메소드에서는, 출력 배열의 실행시의 형태를 정확하게 제어할 수 있기 (위해)때문에, 환경에 따라서는 할당의 수고를 억제할 수가 있습니다.
x 가, 캐릭터 라인만으로부터 되는 큐인 것을 알 수 있고 있으면(자) 가정합니다. 다음의 코드를 사용하면(자), 새롭게 할당할 수 있었던 String 의 배열에 큐를 덤프 할 수 있습니다.
String[] y = x.toArray(new String[0]);toArray(new Object[0]) 는, 기능의 점으로써 toArray() 와 동일합니다.
Collection <E >
내의 toArray
AbstractCollection <E >
내의 toArray
a
- 배열이 충분한 크기를 가지는 경우는, 큐의 요소가 포함되는 배열. 그렇지 않은 경우는, 요소를 포함하기 위해서 같은 실행시의 형태의 새로운 배열을 할당할 수 있다
ArrayStoreException
- 지정된 배열의 실행시의 형태가, 이 큐내의 모든 요소의 실행시의 형태의 슈퍼타입이 아닌 경우
NullPointerException
- 지정된 배열이 null 인 경우public Iterator <E > iterator()
ConcurrentModificationException
를 throw 할 것은 없고, 반복자의 구축시에 존재한 요소를 횡단(traverse) 하는 것을 보증합니다. 또, 구축 후의 모든 변경을 반영합니다 (다만 보증되지는 않았다).
Iterable <E >
내의 iterator
Collection <E >
내의 iterator
AbstractCollection <E >
내의 iterator
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.