Compartilhar via


IBlockingDeque Interface

Definição

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 nullfalse, 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 Collection não contiver elementos .

(Herdado de ICollection)
JniIdentityHashCode

Retorna o valor de java.lang.System.identityHashCode() para a instância encapsulada.

(Herdado de IJavaPeerable)
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 true após o sucesso e lançando um IllegalStateException se nenhum espaço estiver disponível no momento.

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 IllegalStateException se nenhum espaço estiver disponível no momento.

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 IllegalStateException se não houver espaço disponível no momento.

Clear()

Remove todos os elementos desta coleção (operação opcional).

(Herdado de ICollection)
Contains(Object)

Retorna true se esse deque contiver o elemento especificado.

ContainsAll(ICollection)

Retorna true se essa coleção contiver todos os elementos na coleção especificada.

(Herdado de ICollection)
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 Dispose(), caso contrário, não faz nada.

(Herdado de IJavaPeerable)
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 Iterable até que todos os elementos tenham sido processados ou a ação lance uma exceção.

(Herdado de IIterable)
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 true após o sucesso e false se nenhum espaço estiver disponível no momento.

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 true após o sucesso e false se não houver espaço disponível no momento.

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 true após o sucesso e false se não houver espaço disponível no momento.

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 null se esse deque estiver vazio.

PeekFirst()

Recupera, mas não remove, o primeiro elemento deste deque, ou retorna null se esse deque estiver vazio.

(Herdado de IDeque)
PeekLast()

Recupera, mas não remove, o último elemento deste deque, ou retorna null se esse deque estiver vazio.

(Herdado de IDeque)
Poll()

Recupera e remove o cabeçalho da fila representado por esse deque (em outras palavras, o primeiro elemento desse deque), ou retorna null se esse deque estiver vazio.

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 null se esse deque estiver vazio.

(Herdado de IDeque)
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 null se esse deque estiver vazio.

(Herdado de IDeque)
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 IllegalStateException se nenhum espaço estiver disponível no momento.

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 Integer.MAX_VALUE se não houver limite intrínseco.

(Herdado de IBlockingQueue)
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 JniIdentityHashCode.

(Herdado de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

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.

(Herdado de IJavaPeerable)
SetPeerReference(JniObjectReference)

Defina o valor retornado por PeerReference.

(Herdado de IJavaPeerable)
Size()

Retorna o número de elementos neste deque.

Spliterator()

Cria um Spliterator sobre os elementos descritos por este Iterable.

(Herdado de IIterable)
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 generator para alocar a matriz retornada.

(Herdado de ICollection)
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 Spliterator sobre os elementos nesta coleção.

(Herdado de ICollection)

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 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.

GetJniTypeName(IJavaPeerable)

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.

OfferFirstAsync(IBlockingDeque, Object)

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.

OfferFirstAsync(IBlockingDeque, Object, Int64, TimeUnit)

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.

OfferLastAsync(IBlockingDeque, Object)

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.

OfferLastAsync(IBlockingDeque, Object, Int64, TimeUnit)

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.

PollFirstAsync(IBlockingDeque, Int64, TimeUnit)

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.

PollLastAsync(IBlockingDeque, Int64, TimeUnit)

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.

PutFirstAsync(IBlockingDeque, Object)

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.

PutLastAsync(IBlockingDeque, Object)

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.

TakeFirstAsync(IBlockingDeque)

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.

TakeLastAsync(IBlockingDeque)

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.

OfferAsync(IBlockingQueue, Object)

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.

OfferAsync(IBlockingQueue, Object, Int64, TimeUnit)

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.

PollAsync(IBlockingQueue, Int64, TimeUnit)

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.

PutAsync(IBlockingQueue, Object)

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.

TakeAsync(IBlockingQueue)

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.

ToEnumerable(IIterable)

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.

ToEnumerable<T>(IIterable)

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.

Aplica-se a