IBlockingDeque Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Um Deque
que também oferece suporte a operações de bloqueio que aguardam que o deque se torne não vazio ao recuperar um elemento e esperam que o espaço fique disponível no deque ao armazenar um elemento.
[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
- Derivado
- Atributos
- Implementações
Comentários
Um Deque
que também oferece suporte a operações de bloqueio que aguardam que o deque se torne não vazio ao recuperar um elemento e esperam que o espaço fique disponível no deque ao armazenar um elemento.
BlockingDeque
Os métodos vêm em quatro formas, com diferentes maneiras de lidar com operações que não podem ser satisfeitas imediatamente, mas podem ser satisfeitas em algum momento no futuro: uma lança uma exceção, a segunda retorna um valor especial (ou null
false
, dependendo da operação), a terceira bloqueia o thread atual indefinidamente até que a operação possa ser bem-sucedida e a quarta bloqueia apenas um determinado limite máximo de tempo antes de desistir. Esses métodos são resumidos na tabela a seguir:
<table class="plain">caption Resumo dos métodos< BlockingDeque/caption<>tr<>th id="First" colspan="5"> First Element (Head)</th<>/tr<>tr<>td></td<>th id="FThrow" style="font-weight:normal; font-style: itálico">Lança exceção</th<>th id="FValue" style="font-weight:normal; font-style: itálico">Special value</th><th id="FBlock" style="font-weight:>< normal; font-style: itálico">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"> Último elemento (cauda)</th<>/tr<>tr><td></td<>th id="LThrow" style="font-weight:normal; font-style: italic">Lança exceção</th<>th id="LValue" style="font-weight:normal; font-style: itálico">Special value</th><th id="LBlock" style="font-weight:normal; font-style: itálico">Blocks</th><th id="LTimes" style="font-weight:normal; estilo de fonte: itálico"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><><>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="Última 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>
Como qualquer BlockingQueue
, um BlockingDeque
é thread safe, não permite elementos nulos e pode (ou não) ser limitado pela capacidade.
Uma BlockingDeque
implementação pode ser usada diretamente como um FIFO BlockingQueue
. Os métodos herdados da BlockingQueue
interface são precisamente equivalentes aos BlockingDeque
métodos indicados na tabela a seguir:
<table class="plain">caption Comparação dos métodos< BlockingQueue e BlockingDeque/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="Remover" 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 th<>id="poll2" style="font-weight:normal; text-align:left"#poll(long, TimeUnit) poll(time, unit)
<>/th><td headers=" Remover BDeque poll2"><#pollFirst(long, TimeUnit) pollFirst(time, unit)
/td></tr<>tr<>th id="Examine" 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="Examine BDeque peek"#peekFirst() peekFirst()
<>/td<>/tr></table>
Efeitos de consistência de memória: Como acontece com outras coleções simultâneas, ações em um thread antes de colocar um objeto em um BlockingDeque
<i>happen-before</i> ações subsequentes ao acesso ou remoção desse elemento do BlockingDeque
em outro thread.
Essa interface é membro do Java Collections Framework.
Adicionado em 1.6.
Documentação Java para java.util.concurrent.BlockingDeque
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.
Propriedades
First |
Recupera, mas não remove, o primeiro elemento deste deque. (Herdado de IDeque) |
Handle |
Obtém o valor JNI do objeto Android subjacente. (Herdado de IJavaObject) |
IsEmpty |
Retorna se isso |
JniIdentityHashCode |
Retorna o valor de |
JniManagedPeerState |
Estado do par gerenciado. (Herdado de IJavaPeerable) |
JniPeerMembers |
Acesso de membros e suporte à invocação. (Herdado de IJavaPeerable) |
Last |
Recupera, mas não remove, o último elemento deste deque. (Herdado de IDeque) |
PeerReference |
Retorna uma JniObjectReference das instâncias do objeto Java encapsulado. (Herdado de IJavaPeerable) |
Métodos
Add(Object) |
Insere o elemento especificado na fila representada por este deque (em outras palavras, na cauda deste deque) se for possível fazê-lo imediatamente sem violar as restrições de capacidade, retornando |
AddAll(ICollection) |
Adiciona todos os elementos na coleção especificada a essa coleção (operação opcional). (Herdado de ICollection) |
AddFirst(Object) |
Insere o elemento especificado na frente deste deque se for possível fazê-lo imediatamente sem violar as restrições de capacidade, lançando um |
AddLast(Object) |
Insere o elemento especificado no final deste deque se for possível fazê-lo imediatamente sem violar as restrições de capacidade, lançando um |
Clear() |
Remove todos os elementos desta coleção (operação opcional). (Herdado de ICollection) |
Contains(Object) |
Retorna |
ContainsAll(ICollection) |
Retorna |
DescendingIterator() |
Retorna um iterador sobre os elementos neste deque em ordem sequencial inversa. (Herdado de IDeque) |
Disposed() |
Chamado quando a instância tiver sido descartada. (Herdado de IJavaPeerable) |
DisposeUnlessReferenced() |
Se não houver referências pendentes a este caso, então chame |
DrainTo(ICollection) |
Remove todos os elementos disponíveis dessa fila e os adiciona à coleção fornecida. (Herdado de IBlockingQueue) |
DrainTo(ICollection, Int32) |
Remove no máximo o número determinado de elementos disponíveis dessa fila e os adiciona à coleção fornecida. (Herdado de IBlockingQueue) |
Element() |
Recupera, mas não remove, o cabeçalho da fila representado por este deque (em outras palavras, o primeiro elemento deste deque). |
Equals(Object) |
Compara o objeto especificado com esta coleção para igualdade. (Herdado de ICollection) |
Finalized() |
Chamado quando a instância tiver sido finalizada. (Herdado de IJavaPeerable) |
ForEach(IConsumer) |
Executa a ação fornecida para cada elemento do |
GetHashCode() |
Retorna o valor do código hash para esta coleção. (Herdado de ICollection) |
Iterator() |
Retorna um iterador sobre os elementos neste deque na sequência adequada. |
Offer(Object) |
Insere o elemento especificado na fila representada por este deque (em outras palavras, na cauda deste deque) se for possível fazê-lo imediatamente sem violar as restrições de capacidade, retornando |
Offer(Object, Int64, TimeUnit) |
Insere o elemento especificado na fila representada por este deque (em outras palavras, na cauda deste deque), aguardando até o tempo de espera especificado, se necessário, para que o espaço fique disponível. |
OfferFirst(Object) |
Insere o elemento especificado na frente deste deque se for possível fazê-lo imediatamente sem violar as restrições de capacidade, retornando |
OfferFirst(Object, Int64, TimeUnit) |
Insere o elemento especificado na frente deste deque, aguardando até o tempo de espera especificado, se necessário, para que o espaço fique disponível. |
OfferLast(Object) |
Insere o elemento especificado no final deste deque se for possível fazê-lo imediatamente sem violar as restrições de capacidade, retornando |
OfferLast(Object, Int64, TimeUnit) |
Insere o elemento especificado no final deste deque, aguardando até o tempo de espera especificado, se necessário, para que o espaço fique disponível. |
Peek() |
Recupera, mas não remove, o cabeçalho da fila representado por esse deque (em outras palavras, o primeiro elemento desse deque), ou retorna |
PeekFirst() |
Recupera, mas não remove, o primeiro elemento deste deque, ou retorna |
PeekLast() |
Recupera, mas não remove, o último elemento deste deque, ou retorna |
Poll() |
Recupera e remove o cabeçalho da fila representado por esse deque (em outras palavras, o primeiro elemento desse deque), ou retorna |
Poll(Int64, TimeUnit) |
Recupera e remove o cabeçalho da fila representado por esse deque (em outras palavras, o primeiro elemento desse deque), aguardando até o tempo de espera especificado, se necessário, para que um elemento fique disponível. |
PollFirst() |
Recupera e remove o primeiro elemento deste deque ou retorna |
PollFirst(Int64, TimeUnit) |
Recupera e remove o primeiro elemento deste deque, aguardando até o tempo de espera especificado, se necessário, para que um elemento fique disponível. |
PollLast() |
Recupera e remove o último elemento deste deque, ou retorna |
PollLast(Int64, TimeUnit) |
Recupera e remove o último elemento deste deque, aguardando até o tempo de espera especificado, se necessário, para que um elemento fique disponível. |
Pop() |
Pops um elemento da pilha representada por este deque. (Herdado de IDeque) |
Push(Object) |
Empurra um elemento para a pilha representada por este deque (em outras palavras, na cabeça deste deque) se for possível fazê-lo imediatamente sem violar as restrições de capacidade, jogando um |
Put(Object) |
Insere o elemento especificado na fila representada por este deque (em outras palavras, na cauda deste deque), aguardando, se necessário, que o espaço fique disponível. |
PutFirst(Object) |
Insere o elemento especificado na frente deste deque, aguardando, se necessário, que haja espaço disponível. |
PutLast(Object) |
Insere o elemento especificado no final deste deque, aguardando, se necessário, que o espaço fique disponível. |
RemainingCapacity() |
Retorna o número de elementos adicionais que essa fila pode idealmente (na ausência de restrições de memória ou recursos) aceitar sem bloqueio ou |
Remove() |
Recupera e remove o cabeçalho da fila representado por este deque (em outras palavras, o primeiro elemento deste deque). |
Remove(Object) |
Remove a primeira ocorrência do elemento especificado deste deque. |
RemoveAll(ICollection) |
Remove todos os elementos desta coleção que também estão contidos na coleção especificada (operação opcional). (Herdado de ICollection) |
RemoveFirst() |
Recupera e remove o primeiro elemento deste deque. (Herdado de IDeque) |
RemoveFirstOccurrence(Object) |
Remove a primeira ocorrência do elemento especificado deste deque. |
RemoveIf(IPredicate) |
Remove todos os elementos desta coleção que satisfazem o predicado fornecido. (Herdado de ICollection) |
RemoveLast() |
Recupera e remove o último elemento deste deque. (Herdado de IDeque) |
RemoveLastOccurrence(Object) |
Remove a última ocorrência do elemento especificado deste deque. |
RetainAll(ICollection) |
Retém apenas os elementos nesta coleção que estão contidos na coleção especificada (operação opcional). (Herdado de ICollection) |
SetJniIdentityHashCode(Int32) |
Defina o valor retornado por |
SetJniManagedPeerState(JniManagedPeerStates) |
Um |
SetPeerReference(JniObjectReference) |
Defina o valor retornado por |
Size() |
Retorna o número de elementos neste deque. |
Spliterator() |
Cria um |
Take() |
Recupera e remove o cabeçalho da fila representado por este deque (em outras palavras, o primeiro elemento deste deque), aguardando, se necessário, até que um elemento se torne disponível. |
TakeFirst() |
Recupera e remove o primeiro elemento deste deque, aguardando, se necessário, até que um elemento se torne disponível. |
TakeLast() |
Recupera e remove o último elemento deste deque, aguardando, se necessário, até que um elemento fique disponível. |
ToArray() |
Retorna uma matriz que contém todos os elementos desta coleção. (Herdado de ICollection) |
ToArray(IIntFunction) |
Retorna uma matriz que contém todos os elementos nesta coleção, usando a função fornecida |
ToArray(Object[]) |
Retorna uma matriz contendo todos os elementos nesta coleção; O tipo de tempo de execução da matriz retornada é o da matriz especificada. (Herdado de ICollection) |
UnregisterFromRuntime() |
Cancele o registro dessa instância para que o tempo de execução não a retorne de chamadas futuras Java.Interop.JniRuntime+JniValueManager.PeekValue . (Herdado de IJavaPeerable) |
Implantações explícitas de interface
IIterable.Spliterator() |
Cria um |
Métodos de Extensão
JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo verificada em tempo de execução do Android. |
JavaCast<TResult>(IJavaObject) |
Um |
GetJniTypeName(IJavaPeerable) |
Um |
OfferFirstAsync(IBlockingDeque, Object) |
Um |
OfferFirstAsync(IBlockingDeque, Object, Int64, TimeUnit) |
Um |
OfferLastAsync(IBlockingDeque, Object) |
Um |
OfferLastAsync(IBlockingDeque, Object, Int64, TimeUnit) |
Um |
PollFirstAsync(IBlockingDeque, Int64, TimeUnit) |
Um |
PollLastAsync(IBlockingDeque, Int64, TimeUnit) |
Um |
PutFirstAsync(IBlockingDeque, Object) |
Um |
PutLastAsync(IBlockingDeque, Object) |
Um |
TakeFirstAsync(IBlockingDeque) |
Um |
TakeLastAsync(IBlockingDeque) |
Um |
OfferAsync(IBlockingQueue, Object) |
Um |
OfferAsync(IBlockingQueue, Object, Int64, TimeUnit) |
Um |
PollAsync(IBlockingQueue, Int64, TimeUnit) |
Um |
PutAsync(IBlockingQueue, Object) |
Um |
TakeAsync(IBlockingQueue) |
Um |
ToEnumerable(IIterable) |
Um |
ToEnumerable<T>(IIterable) |
Um |