IBlockingDeque 인터페이스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
Deque
또한 요소를 검색할 때 deque가 비어있지 않고 요소를 저장할 때 deque에서 공간을 사용할 수 있을 때까지 기다리는 차단 작업을 지원합니다.
[Android.Runtime.Register("java/util/concurrent/BlockingDeque", "", "Java.Util.Concurrent.IBlockingDequeInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public interface IBlockingDeque : IDisposable, Java.Interop.IJavaPeerable, Java.Util.Concurrent.IBlockingQueue, Java.Util.IDeque
[<Android.Runtime.Register("java/util/concurrent/BlockingDeque", "", "Java.Util.Concurrent.IBlockingDequeInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type IBlockingDeque = interface
interface IBlockingQueue
interface IQueue
interface ICollection
interface IIterable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IDeque
- 파생
- 특성
- 구현
설명
Deque
또한 요소를 검색할 때 deque가 비어있지 않고 요소를 저장할 때 deque에서 공간을 사용할 수 있을 때까지 기다리는 차단 작업을 지원합니다.
BlockingDeque
메서드는 즉시 충족할 수 없지만 향후 특정 시점에 충족될 수 있는 작업을 처리하는 다양한 방법으로 네 가지 형식으로 제공됩니다. 하나는 예외를 throw하고, 두 번째는 작업에 따라 특수 값(또는 null
false
작업에 따라)을 반환하고, 세 번째 메서드는 작업이 성공할 때까지 현재 스레드를 무기한 차단하고, 네 번째 블록은 포기하기 전에 지정된 최대 시간 제한에 대해서만 차단합니다. 이러한 메서드는 다음 표에 요약되어 있습니다.
<table class="plain">caption Summary of BlockingDeque methods</caption><tr><th id="First" colspan="5"> First Element (Head)</th></tr<>tr tr<>td></td<>th id="FThrow" style="font-weight:normal; font-style: italic">Throw exception</th th><id="FValue" style="font-weight:normal; font-style: italic">Special value</th th><id="FBlock" style="font-weight:>< 보통; font-style: 기울임꼴">Blocks</th th><id="FTimes" style="font-weight:normal; font-style: italic">Times out</th<>/tr tr><><th id="FInsert" style="text-align:left">Insert</th<>td headers="First FInsert FThrow"<#addFirst(Object) addFirst(e)
>/td td><headers="First FInsert FValue"<#offerFirst(Object) offerFirst(e)
>/td td<>headers="First FInsert FBlock"#putFirst(Object) putFirst(e)
<>/td td><headers="First FInsert FTimes"><#offerFirst(Object, long, TimeUnit) offerFirst(e, time, unit)
/td></tr tr>><<th id="FRemove" style="text-align:left">Remove</th><td headers="First FRemove FThrow"<#removeFirst() removeFirst()
>/td td><headers="First FRemove FValue">#pollFirst() pollFirst()
</td td><headers="First FRemove FBlock">#takeFirst() takeFirst()
</td td><headers="First FRemove FTimes"#pollFirst(long, TimeUnit) pollFirst(time, unit)
<>/td<>/tr<>tr><th id="FExamine" style=" text-align:left">Examine</th><td headers="First FExamine FThrow"#getFirst() getFirst()
></td td><headers="First FExamine FValue"#peekFirst() peekFirst()
></td td><headers="First FExamine FBlock" style="font-style:italic">not applicable</td td><headers="First FExamine FTimes" style="font-style:italic">not applicable</td<>/tr><tr><th id="Last" colspan="5"> Last 요소(Tail)</th<>/tr tr><tr<>td></td><th id="LThrow" style="font-weight:normal; font-style: italic">throw exception</th<>th id="LValue" style="font-weight:normal; font-style: italic">Special value</th th><id="LBlock" style="font-weight:normal; font-style: italic">Blocks</th><th id="LTimes" style="font-weight:normal; font-style: italic">Times out</th<>/tr tr><><th id="LInsert" style="text-align:left">Insert</th><td headers="Last LInsert LThrow"<>#addLast(Object) addLast(e)
/td td<>headers="Last LInsert LValue"<>#offerLast(Object) offerLast(e)
/td td<>headers="Last LInsert LBlock"<>#putLast(Object) putLast(e)
/td td<>headers="Last LInsert LTimes"<>#offerLast(Object, long, TimeUnit) offerLast(e, time, unit)
/td></tr tr tr><><th id="LRemove" style="text-align:left"Remove/th<>td headers="Last LRemove LThrow"#removeLast() removeLast()
></td td><headers="Last LRemove LValue"<>#pollLast() pollLast()
/td td><headers="Last LRemove LBlock"#takeLast() takeLast()
<>/td td><headers="Last LRemove LTimes"#pollLast(long, TimeUnit) pollLast(time, unit)
<>/td<>/tr tr>><<th id="LExamine" style="text-align:left">Examine</th><><td headers="Last LExamine LThrow">#getLast() getLast()
</td td headers="Last LExamine LValue"><#peekLast() peekLast()
/td td><headers="Last LExamine LBlock" style="font-style:italic">not applicable</td td><headers="Last LExamine LTimes" style="font-style:italic">not applicable</td></tr></table><>
다른 BlockingQueue
것과 마찬가지로 a BlockingDeque
는 스레드로부터 안전하며 null 요소를 허용하지 않으며 용량이 제한될 수도 있고 그렇지 않을 수도 있습니다.
구현은 BlockingDeque
FIFO BlockingQueue
로 직접 사용할 수 있습니다. 인터페이스에서 BlockingQueue
상속된 메서드는 다음 표에 BlockingDeque
표시된 메서드와 정확히 동일합니다.
<table class="plain">caption Comparison of BlockingQueue and BlockingDeque methods</caption><tr td><></td><th id="BQueue"BlockingQueue
> Method</th th><id="BDeque"> Equivalent BlockingDeque
Method</th<>/tr tr<><>th id="Insert" rowspan="4" style="text-align:left; vertical-align:top">Insert</th th><id="add" style="font-weight:normal; text-align:left">><#add(Object) add(e)
</th><td headers="Insert BDeque add"<>#addLast(Object) addLast(e)
/td></tr tr>><<th id="offer1" style="font-weight:normal; text-align:left">#offer(Object) offer(e)
</th><td headers="Insert BDeque offer1"<#offerLast(Object) offerLast(e)
>/td<>/tr tr>><<th id="put" style="font-weight:normal; text-align:left"><#put(Object) put(e)
/th<>td headers="Insert BDeque put"<#putLast(Object) putLast(e)
>/td></tr><tr><th id="offer2" style="font-weight:normal; text-align:left">#offer(Object, long, TimeUnit) offer(e, time, unit)
</th><td headers="Insert BDeque offer2"<#offerLast(Object, long, TimeUnit) offerLast(e, time, unit)
>/td<>/tr tr<><>th id="Remove" rowspan="4" style="text-align:left; vertical-align:top">Remove</th th<>id="remove" style="font-weight:normal; text-align:left"<>#remove() remove()
/th<>td headers="Remove BDeque remove"#removeFirst() removeFirst()
<>/td<>/tr<>tr><th id="poll1" style=" font-weight:normal; text-align:left">#poll() poll()
</th><td headers="Remove BDeque poll1"<#pollFirst() pollFirst()
>/td<>/tr tr<<>>th id="take" style="font-weight:normal; text-align:left"<>#take() take()
/th<>td headers="Remove BDeque take"<>#takeFirst() takeFirst()
/td></tr tr><tr<>th id="poll2" style="font-weight:normal; text-align:left"#poll(long, TimeUnit) poll(time, unit)
<>/th><td headers=" BDeque poll2 제거">#pollFirst(long, TimeUnit) pollFirst(time, unit)
</td></tr tr><<>th id="검사" rowspan="2" style="text-align:left; vertical-align:top">Examine</th th<>id="element" style="font-weight:normal; text-align:left"<>#element() element()
/th<>td headers="Examine BDeque element"<>#getFirst() getFirst()
/td<>/tr tr><><th id="peek" style="font-weight:normal; text-align:left" >#peek() peek()
</th><td headers="BDeque peek 검사">#peekFirst() peekFirst()
</td></tr></table>
메모리 일관성 효과: 다른 동시 컬렉션과 마찬가지로 다른 스레드에서 해당 요소의 액세스 또는 제거 이후 i에 개체BlockingDeque
<>를 배치하기 전에< 스레드의 작업이 수행됩니다>.BlockingDeque
이 인터페이스는 Java 컬렉션 프레임워크의 멤버입니다.
1.6에 추가되었습니다.
에 대한 java.util.concurrent.BlockingDeque
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
속성
First |
이 deque의 첫 번째 요소를 검색하지만 제거하지는 않습니다. (다음에서 상속됨 IDeque) |
Handle |
기본 Android 개체의 JNI 값을 가져옵니다. (다음에서 상속됨 IJavaObject) |
IsEmpty |
요소가 없는 경우 |
JniIdentityHashCode |
래핑된 인스턴스의 |
JniManagedPeerState |
관리되는 피어의 상태입니다. (다음에서 상속됨 IJavaPeerable) |
JniPeerMembers |
멤버 액세스 및 호출 지원. (다음에서 상속됨 IJavaPeerable) |
Last |
이 deque의 마지막 요소를 검색하지만 제거하지는 않습니다. (다음에서 상속됨 IDeque) |
PeerReference |
JniObjectReference 래핑된 Java 개체 인스턴스의 값을 반환합니다. (다음에서 상속됨 IJavaPeerable) |
메서드
Add(Object) |
용량 제한을 위반하지 않고, 성공 시 반환 |
AddAll(ICollection) |
지정된 컬렉션의 모든 요소를 이 컬렉션에 추가합니다(선택적 작업). (다음에서 상속됨 ICollection) |
AddFirst(Object) |
용량 제한을 위반하지 않고 즉시 수행할 수 있는 경우 이 deque의 맨 앞에 지정된 요소를 삽입하고 현재 사용할 수 있는 |
AddLast(Object) |
용량 제한을 위반하지 않고 즉시 수행할 수 있는 경우 이 deque의 끝에 지정된 요소를 삽입하고 현재 사용할 수 있는 |
Clear() |
이 컬렉션에서 모든 요소를 제거합니다(선택적 작업). (다음에서 상속됨 ICollection) |
Contains(Object) |
이 deque에 지정된 요소가 포함되어 있는지를 반환 |
ContainsAll(ICollection) |
이 컬렉션에 지정된 컬렉션의 모든 요소가 포함되어 있는지를 반환 |
DescendingIterator() |
이 deque의 요소에 대한 반복기를 역순으로 반환합니다. (다음에서 상속됨 IDeque) |
Disposed() |
인스턴스가 삭제되었을 때 호출됩니다. (다음에서 상속됨 IJavaPeerable) |
DisposeUnlessReferenced() |
이 인스턴스에 대한 미해결 참조가 없으면 호출 |
DrainTo(ICollection) |
이 큐에서 사용 가능한 모든 요소를 제거하고 지정된 컬렉션에 추가합니다. (다음에서 상속됨 IBlockingQueue) |
DrainTo(ICollection, Int32) |
이 큐에서 사용 가능한 요소의 최대 수를 제거하고 지정된 컬렉션에 추가합니다. (다음에서 상속됨 IBlockingQueue) |
Element() |
이 deque로 표시되는 큐의 헤드(즉, 이 deque의 첫 번째 요소)를 검색하지만 제거하지는 않습니다. |
Equals(Object) |
지정된 개체를 이 컬렉션과 비교하여 같은지 확인합니다. (다음에서 상속됨 ICollection) |
Finalized() |
인스턴스가 종료될 때 호출됩니다. (다음에서 상속됨 IJavaPeerable) |
ForEach(IConsumer) |
모든 요소가 처리되거나 작업이 예외를 |
GetHashCode() |
이 컬렉션의 해시 코드 값을 반환합니다. (다음에서 상속됨 ICollection) |
Iterator() |
이 deque의 요소에 대한 반복기를 적절한 시퀀스로 반환합니다. |
Offer(Object) |
용량 제한을 위반하지 않고 즉시 수행할 수 있고 성공 시 반환 |
Offer(Object, Int64, TimeUnit) |
이 deque가 나타내는 큐에 지정된 요소를 삽입합니다(즉, 이 deque의 꼬리에 있음). 공간을 사용할 수 있는 데 필요한 경우 지정된 대기 시간까지 기다립니다. |
OfferFirst(Object) |
용량 제한을 위반하지 않고 즉시 수행할 수 있는 경우 이 deque의 맨 앞에 지정된 요소를 삽입하고 |
OfferFirst(Object, Int64, TimeUnit) |
공간을 사용할 수 있도록 필요한 경우 지정된 대기 시간까지 대기하여 이 deque의 맨 앞에 지정된 요소를 삽입합니다. |
OfferLast(Object) |
용량 제한을 위반하지 않고 즉시 수행할 수 있는 경우 이 deque의 끝에 지정된 요소를 삽입하고 |
OfferLast(Object, Int64, TimeUnit) |
공간을 사용할 수 있도록 필요한 경우 지정된 대기 시간까지 대기하여 이 deque의 끝에 지정된 요소를 삽입합니다. |
Peek() |
이 deque가 나타내는 큐의 헤드(즉, 이 deque의 첫 번째 요소)를 검색하지만 제거하지는 않습니다. 또는 이 deque가 비어 있으면 반환합니다 |
PeekFirst() |
이 deque의 첫 번째 요소를 검색하지만 제거하지는 않으며 이 deque가 비어 있으면 반환합니다 |
PeekLast() |
이 deque의 마지막 요소를 검색하지만 제거하지는 않으며 이 deque가 비어 있으면 반환합니다 |
Poll() |
이 deque가 나타내는 큐의 헤드(즉, 이 deque의 첫 번째 요소)를 검색하고 제거하거나 이 deque가 비어 있으면 반환합니다 |
Poll(Int64, TimeUnit) |
이 deque가 나타내는 큐의 헤드(즉, 이 deque의 첫 번째 요소)를 검색하고 제거하여 요소가 사용 가능해질 때까지 필요한 경우 지정된 대기 시간까지 기다립니다. |
PollFirst() |
이 deque의 첫 번째 요소를 검색하고 제거하거나 이 deque가 비어 있으면 반환합니다 |
PollFirst(Int64, TimeUnit) |
이 deque의 첫 번째 요소를 검색하고 제거하여 요소를 사용할 수 있도록 필요한 경우 지정된 대기 시간까지 기다립니다. |
PollLast() |
이 deque의 마지막 요소를 검색하고 제거하거나 이 deque가 비어 있으면 반환합니다 |
PollLast(Int64, TimeUnit) |
요소를 사용할 수 있도록 필요한 경우 지정된 대기 시간까지 기다리며 이 deque의 마지막 요소를 검색하고 제거합니다. |
Pop() |
이 deque가 나타내는 스택에서 요소를 팝합니다. (다음에서 상속됨 IDeque) |
Push(Object) |
용량 제한을 위반하지 않고 즉시 수행할 수 있는 경우 이 deque가 나타내는 스택(즉, 이 deque의 머리)에 요소를 푸시하여 |
Put(Object) |
이 deque가 나타내는 큐에 지정된 요소를 삽입합니다(즉, 이 deque의 꼬리에 있음). 공간이 제공될 때까지 필요한 경우 대기합니다. |
PutFirst(Object) |
공간이 사용 가능해질 때까지 필요한 경우 대기하여 이 deque의 맨 앞에 지정된 요소를 삽입합니다. |
PutLast(Object) |
이 deque의 끝에 지정된 요소를 삽입하고 필요한 경우 공간을 사용할 수 있게 됩니다. |
RemainingCapacity() |
메모리 |
Remove() |
이 deque로 표시되는 큐의 헤드를 검색하고 제거합니다(즉, 이 deque의 첫 번째 요소). |
Remove(Object) |
이 deque에서 지정된 요소의 첫 번째 항목을 제거합니다. |
RemoveAll(ICollection) |
지정된 컬렉션에도 포함된 이 컬렉션의 모든 요소를 제거합니다(선택적 작업). (다음에서 상속됨 ICollection) |
RemoveFirst() |
이 deque의 첫 번째 요소를 검색하고 제거합니다. (다음에서 상속됨 IDeque) |
RemoveFirstOccurrence(Object) |
이 deque에서 지정된 요소의 첫 번째 항목을 제거합니다. |
RemoveIf(IPredicate) |
지정된 조건자를 충족하는 이 컬렉션의 모든 요소를 제거합니다. (다음에서 상속됨 ICollection) |
RemoveLast() |
이 deque의 마지막 요소를 검색하고 제거합니다. (다음에서 상속됨 IDeque) |
RemoveLastOccurrence(Object) |
이 deque에서 지정된 요소의 마지막 항목을 제거합니다. |
RetainAll(ICollection) |
지정된 컬렉션에 포함된 이 컬렉션의 요소만 유지합니다(선택적 작업). (다음에서 상속됨 ICollection) |
SetJniIdentityHashCode(Int32) |
에서 반환 |
SetJniManagedPeerState(JniManagedPeerStates) |
|
SetPeerReference(JniObjectReference) |
에서 반환 |
Size() |
이 deque의 요소 수를 반환합니다. |
Spliterator() |
|
Take() |
이 deque(즉, 이 deque의 첫 번째 요소)로 표시되는 큐의 헤드를 검색하고 제거하며, 필요한 경우 요소를 사용할 수 있게 될 때까지 대기합니다. |
TakeFirst() |
필요한 경우 요소를 사용할 수 있게 될 때까지 기다리며 이 deque의 첫 번째 요소를 검색하고 제거합니다. |
TakeLast() |
필요한 경우 요소를 사용할 수 있게 될 때까지 기다리며 이 deque의 마지막 요소를 검색하고 제거합니다. |
ToArray() |
이 컬렉션의 모든 요소를 포함하는 배열을 반환합니다. (다음에서 상속됨 ICollection) |
ToArray(IIntFunction) |
제공된 함수를 사용하여 반환된 |
ToArray(Object[]) |
이 컬렉션의 모든 요소를 포함하는 배열을 반환합니다. 반환된 배열의 런타임 형식은 지정된 배열의 런타임 형식입니다. (다음에서 상속됨 ICollection) |
UnregisterFromRuntime() |
런타임이 이후 Java.Interop.JniRuntime+JniValueManager.PeekValue 호출에서 반환되지 않도록 이 인스턴스의 등록을 취소합니다. (다음에서 상속됨 IJavaPeerable) |
명시적 인터페이스 구현
IIterable.Spliterator() |
이 컬렉션의 |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
|
GetJniTypeName(IJavaPeerable) |
|
OfferFirstAsync(IBlockingDeque, Object) |
|
OfferFirstAsync(IBlockingDeque, Object, Int64, TimeUnit) |
|
OfferLastAsync(IBlockingDeque, Object) |
|
OfferLastAsync(IBlockingDeque, Object, Int64, TimeUnit) |
|
PollFirstAsync(IBlockingDeque, Int64, TimeUnit) |
|
PollLastAsync(IBlockingDeque, Int64, TimeUnit) |
|
PutFirstAsync(IBlockingDeque, Object) |
|
PutLastAsync(IBlockingDeque, Object) |
|
TakeFirstAsync(IBlockingDeque) |
|
TakeLastAsync(IBlockingDeque) |
|
OfferAsync(IBlockingQueue, Object) |
|
OfferAsync(IBlockingQueue, Object, Int64, TimeUnit) |
|
PollAsync(IBlockingQueue, Int64, TimeUnit) |
|
PutAsync(IBlockingQueue, Object) |
|
TakeAsync(IBlockingQueue) |
|
ToEnumerable(IIterable) |
|
ToEnumerable<T>(IIterable) |
|