|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.util.AbstractCollection <E>
java.util.AbstractQueue <E>
java.util.concurrent.SynchronousQueue<E>
E
- 컬렉션내에 존재하는 요소의 형태public class SynchronousQueue<E>
각 삽입 오퍼레이션이 다른 thread에 의한 대응하는 삭제 오퍼레이션을 대기할 필요가 있는 ( 및 그 역의) 블로킹 큐 입니다. 동기 큐에는, 내부 용량이 전혀 없습니다. 요소가 존재하는 것은 삭제하려고 할 때 만이므로, 동기 큐로 peek 를 실행할 수 없습니다. 다른 thread가 삭제를 시도하지 않은 한, 어느 메소드를 사용해도 요소를 삽입할 수 없습니다. 반복하는 것이 존재하지 않기 때문에, 반복은 실행할 수 없습니다. 큐의 「선두」는, 삽입 처리 thread가 큐에 추가하려고 한다, 최초로 큐에 넣어진 요소입니다. 그러한 큐에 넣어진 thread가 존재하지 않는 경우는, 삭제할 수 있는 요소는 없고,poll() 는 null 를 돌려줍니다. 다른 Collection 메소드 (contains 등)를 위해서(때문에),SynchronousQueue 는 빈 상태(empty)의 컬렉션으로서 동작합니다. 이 큐에서는,null 요소는 허가되지 않습니다.
동기 큐는, CSP 및 Ada 로 사용되는 랑데뷰 채널을 닮아 있습니다. 이것들은 핸드 오프 설계에 최적입니다. 핸드 오프 설계에서는, 정보, 이벤트, 또는 태스크를 건네주기 위해서(때문에), 어느 thread로 실행중의 객체를 다른 thread로 실행중의 객체와 동기 시킬 필요가 있습니다.
이 클래스에서는, 대기중의 프로듀서 및 컨슈머(consumer) thread의 순서부를 위한 옵션의 공평성 정책를 지원합니다. 디폴트에서는, 이 순서부는 보증되고 있지 않습니다. 다만, 공평성을 true 로 설정해 구축된 큐에서는, thread가 FIFO 의 순서로 액세스 하는 것이 허가됩니다.
이 클래스와 그 반복자는,Collection
및 Iterator
인터페이스의 「옵션」메소드 모든 것을 구현합니다.
이 클래스는,Java Collections Framework 의 멤버입니다.
생성자 의 개요 | |
---|---|
SynchronousQueue ()
불공평 액세스 정책로 SynchronousQueue 를 작성합니다. |
|
SynchronousQueue (boolean fair)
지정된 공평성 정책로 SynchronousQueue 를 작성합니다. |
메소드의 개요 | ||
---|---|---|
void |
clear ()
아무것도 실시하지 않습니다. |
|
boolean |
contains (Object o)
항상 false 를 돌려줍니다. |
|
boolean |
containsAll (Collection <? > c)
지정된 컬렉션이 빈 상태(empty)이 아닌 한,false 를 돌려줍니다. |
|
int |
drainTo (Collection <? super E > c)
이 큐로부터 이용 가능한 모든 요소를 삭제해, 그것들이 지정된 컬렉션에 추가합니다. |
|
int |
drainTo (Collection <? super E > c,
int maxElements)
지정된 수이내의 이용 가능한 요소를 이 큐로부터 삭제해, 지정된 컬렉션에 추가합니다. |
|
boolean |
isEmpty ()
항상 true 를 돌려줍니다. |
|
Iterator <E > |
iterator ()
항상 hasNext 가 false 를 돌려주는 빈 상태(empty)의 반복자를 돌려줍니다. |
|
boolean |
offer (E e)
다른 thread가 요소를 받는 것을 대기하고 있는 경우, 그 요소를 이 큐에 추가합니다. |
|
boolean |
offer (E o,
long timeout,
TimeUnit unit)
지정된 요소를 이 큐에 삽입합니다. |
|
E |
peek ()
항상 null 를 돌려줍니다. |
|
E |
poll ()
다른 thread가 현재 요소를 이용 가능하게 하고 있는 경우는, 큐의 선두를 취득해 삭제합니다. |
|
E |
poll (long timeout,
TimeUnit unit)
이 큐의 선두를 취득 및 삭제합니다. |
|
void |
put (E o)
지정된 요소를 이 큐에 추가합니다. |
|
int |
remainingCapacity ()
항상 제로를 돌려줍니다. |
|
boolean |
remove (Object o)
항상 false 를 돌려줍니다. |
|
boolean |
removeAll (Collection <? > c)
항상 false 를 돌려줍니다. |
|
boolean |
retainAll (Collection <? > c)
항상 false 를 돌려줍니다. |
|
int |
size ()
항상 제로를 돌려줍니다. |
|
E |
take ()
이 큐의 선두를 취득해 삭제합니다. |
|
Object [] |
toArray ()
길이가 제로의 배열을 돌려줍니다. |
|
|
toArray (T[] a)
배열의 길이가 제로가 아닌 경우에, 지정된 배열의 제로 번째의 요소를 null 로 설정해 돌려줍니다. |
클래스 java.util. AbstractQueue 로부터 상속된 메소드 |
---|
add , addAll , element , remove |
클래스 java.util. AbstractCollection 로부터 상속된 메소드 |
---|
toString |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait |
인터페이스 java.util.concurrent. BlockingQueue 로부터 상속된 메소드 |
---|
add |
인터페이스 java.util. Queue 로부터 상속된 메소드 |
---|
element , remove |
인터페이스 java.util. Collection 로부터 상속된 메소드 |
---|
addAll , equals , hashCode |
생성자 의 상세 |
---|
public SynchronousQueue()
public SynchronousQueue(boolean fair)
fair
- true 의 경우, 대기중의 thread는 FIFO 의 순서로 액세스가 결정된다. 그렇지 않은 경우, 순서는 미지정메소드의 상세 |
---|
public void put(E o) throws InterruptedException
BlockingQueue <E >
내의 put
o
- 추가하는 요소
InterruptedException
- 대기중에 인터럽트가 발생했을 경우
NullPointerException
- 지정된 요소가 null 인 경우public boolean offer(E o, long timeout, TimeUnit unit) throws InterruptedException
BlockingQueue <E >
내의 offer
o
- 추가하는 요소timeout
- 처리를 중지할 때까지의 대기 시간. 단위는 unitunit
- timeout 파라미터의 해석 방법을 결정하는 TimeUnit
InterruptedException
- 대기중에 인터럽트가 발생했을 경우
NullPointerException
- 지정된 요소가 null 인 경우public boolean offer(E e)
BlockingQueue <E >
내의 offer
Queue <E >
내의 offer
e
- 추가하는 요소
NullPointerException
- 지정된 요소가 null 인 경우public E take() throws InterruptedException
BlockingQueue <E >
내의 take
InterruptedException
- 대기중에 인터럽트가 발생했을 경우public E poll(long timeout, TimeUnit unit) throws InterruptedException
BlockingQueue <E >
내의 poll
timeout
- 처리를 중지할 때까지의 대기 시간. 단위는 unitunit
- timeout 파라미터의 해석 방법을 결정하는 TimeUnit
InterruptedException
- 대기중에 인터럽트가 발생했을 경우public E poll()
Queue <E >
내의 poll
public boolean isEmpty()
Collection <E >
내의 isEmpty
AbstractCollection <E >
내의 isEmpty
public int size()
Collection <E >
내의 size
AbstractCollection <E >
내의 size
public int remainingCapacity()
BlockingQueue <E >
내의 remainingCapacity
public void clear()
Collection <E >
내의 clear
AbstractQueue <E >
내의 clear
public boolean contains(Object o)
Collection <E >
내의 contains
BlockingQueue <E >
내의 contains
AbstractCollection <E >
내의 contains
o
- 요소
public boolean remove(Object o)
Collection <E >
내의 remove
BlockingQueue <E >
내의 remove
AbstractCollection <E >
내의 remove
o
- 삭제하는 요소
public boolean containsAll(Collection <? > c)
Collection <E >
내의 containsAll
AbstractCollection <E >
내의 containsAll
c
- 컬렉션
AbstractCollection.contains(Object)
public boolean removeAll(Collection <? > c)
Collection <E >
내의 removeAll
AbstractCollection <E >
내의 removeAll
c
- 컬렉션
AbstractCollection.remove(Object)
,
AbstractCollection.contains(Object)
public boolean retainAll(Collection <? > c)
Collection <E >
내의 retainAll
AbstractCollection <E >
내의 retainAll
c
- 컬렉션
AbstractCollection.remove(Object)
,
AbstractCollection.contains(Object)
public E peek()
Queue <E >
내의 peek
public Iterator <E > iterator()
Iterable <E >
내의 iterator
Collection <E >
내의 iterator
AbstractCollection <E >
내의 iterator
public Object [] toArray()
Collection <E >
내의 toArray
AbstractCollection <E >
내의 toArray
public <T> T[] toArray(T[] a)
Collection <E >
내의 toArray
AbstractCollection <E >
내의 toArray
a
- 배열
NullPointerException
- 지정된 배열이 null 인 경우public int drainTo(Collection <? super E > c)
BlockingQueue
의 기술:
BlockingQueue <E >
내의 drainTo
c
- 요소의 전송처의 컬렉션
UnsupportedOperationException
- 지정된 컬렉션으로 추가의 요소가 지원되어 있지 않은 경우
ClassCastException
- 이 큐의 요소의 클래스가 원인으로, 그 요소가 지정된 컬렉션에 추가할 수 없는 경우
NullPointerException
- 지정된 컬렉션이 null 인 경우
IllegalArgumentException
- 지정된 컬렉션이 이 큐인 경우, 또는 이 큐의 요소가 있는 프로퍼티이 원인으로 지정된 컬렉션에 추가할 수 없는 경우public int drainTo(Collection <? super E > c, int maxElements)
BlockingQueue
의 기술:
BlockingQueue <E >
내의 drainTo
c
- 요소의 전송처의 컬렉션maxElements
- 전송 하는 요소의 최대수
UnsupportedOperationException
- 지정된 컬렉션으로 추가의 요소가 지원되어 있지 않은 경우
ClassCastException
- 이 큐의 요소의 클래스가 원인으로, 그 요소가 지정된 컬렉션에 추가할 수 없는 경우
NullPointerException
- 지정된 컬렉션이 null 인 경우
IllegalArgumentException
- 지정된 컬렉션이 이 큐인 경우, 또는 이 큐의 요소가 있는 프로퍼티이 원인으로 지정된 컬렉션에 추가할 수 없는 경우
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.