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.BlockingDequeJava 설명서
이 페이지의 일부는 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) |
|