IBlockingDeque Interfaz
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Que Deque
además admite operaciones de bloqueo que esperan a que el deque deje de estar vacío al recuperar un elemento y espere a que el espacio esté disponible en el deque al almacenar un 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
- Implementaciones
Comentarios
Que Deque
además admite operaciones de bloqueo que esperan a que el deque deje de estar vacío al recuperar un elemento y espere a que el espacio esté disponible en el deque al almacenar un elemento.
BlockingDeque
Los métodos vienen en cuatro formas, con diferentes formas de controlar las operaciones que no se pueden satisfacer inmediatamente, pero que pueden cumplirse en algún momento en el futuro: uno produce una excepción, el segundo devuelve un valor especial (ya sea null
o false
, dependiendo de la operación), el tercero bloquea el subproceso actual indefinidamente hasta que la operación pueda realizarse correctamente y el cuarto bloque solo para un límite de tiempo máximo determinado antes de abandonar. Estos métodos se resumen en la tabla siguiente:
<table class="plain">caption Summary of BlockingDeque methods</caption><tr><th id="First" colspan="5"> First Element (Head)</th<>/tr tr><td><></td<>th id="FThrow" style="font-weight:normal; font-style: italic">Throws exception</th th<>id="FValue" style="font-weight:normal; font-style: italic">Special value</th><id="FBlock" style="font-weight:>< normal; font-style: italic">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"/td td headers="First FInsert FBlock"/td td headers="First FInsert FBlock"#putFirst(Object) putFirst(e)
<>/td<>td headers="First FInsert FValue"#offerFirst(Object) offerFirst(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--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 Element (Tail)</th></tr tr td><><></td<>th id="LThrow" style="font-weight:normal; font-style: italic">Throws exception</th th><id="LValue" style="font-weight:normal; font-style: italic">Special value</th><id="LBlock" style="font-weight:normal; font-style: italic">Blocks</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><><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>
Al igual que cualquier BlockingQueue
, un BlockingDeque
es seguro para subprocesos, no permite elementos NULL y puede (o no) estar limitado por la capacidad.
Una BlockingDeque
implementación se puede usar directamente como FIFO BlockingQueue
. Los métodos heredados de la BlockingQueue
interfaz son exactamente equivalentes a los BlockingDeque
métodos, como se indica en la tabla siguiente:
<table class="plain">caption Comparison of BlockingQueue and BlockingDeque methods</caption><tr><td/td><>< th id="BQueue"BlockingQueue
> Method/th><id="BDeque"> Equivalent BlockingDeque
Method<</th/tr tr>><<th<> id="Insert" rowspan="4" style="text-align:left; vertical-align:top">Insert</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"/td/tr 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)
>"#offerLast(Object) offerLast(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<>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><<>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=" Quite 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<>id="element" style="font-weight:normal; text-align:left"<>#element() element()
/th<>td headers="Examine BDeque element"#getFirst() getFirst()
></td<>/tr><><th id="peek" style="font-weight:normal; text-align:left" >#peek() peek()
</th><td headers="Examine BDeque peek"#peekFirst() peekFirst()
></td<>/tr></table>
Efectos de coherencia de memoria: al igual que con otras colecciones simultáneas, las acciones de un subproceso antes de colocar un objeto en una BlockingDeque
<acción i>before</i> posterior al acceso o eliminación de ese elemento de BlockingDeque
en otro subproceso.
Esta interfaz es miembro de Java Collections Framework.
Agregado en la versión 1.6.
Documentación de Java para java.util.concurrent.BlockingDeque
.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.
Propiedades
First |
Recupera, pero no quita, el primer elemento de este deque. (Heredado de IDeque) |
Handle |
Obtiene el valor JNI del objeto Android subyacente. (Heredado de IJavaObject) |
IsEmpty |
Devuelve si no |
JniIdentityHashCode |
Devuelve el valor de |
JniManagedPeerState |
Estado del mismo nivel administrado. (Heredado de IJavaPeerable) |
JniPeerMembers |
Compatibilidad con la invocación y el acceso de miembros. (Heredado de IJavaPeerable) |
Last |
Recupera, pero no quita, el último elemento de este deque. (Heredado de IDeque) |
PeerReference |
Devuelve una JniObjectReference de la instancia de objeto Java ajustada. (Heredado de IJavaPeerable) |
Métodos
Add(Object) |
Inserta el elemento especificado en la cola representada por este deque (es decir, en la cola de este deque) si es posible hacerlo inmediatamente sin infringir las restricciones de capacidad, devolviendo |
AddAll(ICollection) |
Agrega todos los elementos de la colección especificada a esta colección (operación opcional). (Heredado de ICollection) |
AddFirst(Object) |
Inserta el elemento especificado en la parte frontal de este deque si es posible hacerlo inmediatamente sin infringir las restricciones de capacidad, iniciando un |
AddLast(Object) |
Inserta el elemento especificado al final de este deque si es posible hacerlo inmediatamente sin infringir las restricciones de capacidad, iniciando un |
Clear() |
Quita todos los elementos de esta colección (operación opcional). (Heredado de ICollection) |
Contains(Object) |
Devuelve |
ContainsAll(ICollection) |
Devuelve |
DescendingIterator() |
Devuelve un iterador sobre los elementos de este deque en orden secuencial inverso. (Heredado de IDeque) |
Disposed() |
Se llama cuando se ha eliminado la instancia. (Heredado de IJavaPeerable) |
DisposeUnlessReferenced() |
Si no hay referencias pendientes a esta instancia, llama a |
DrainTo(ICollection) |
Quita todos los elementos disponibles de esta cola y los agrega a la colección especificada. (Heredado de IBlockingQueue) |
DrainTo(ICollection, Int32) |
Quita como máximo el número dado de elementos disponibles de esta cola y los agrega a la colección especificada. (Heredado de IBlockingQueue) |
Element() |
Recupera, pero no quita, el encabezado de la cola representada por este deque (es decir, el primer elemento de este deque). |
Equals(Object) |
Compara el objeto especificado con esta colección para obtener igualdad. (Heredado de ICollection) |
Finalized() |
Se llama cuando se ha finalizado la instancia. (Heredado de IJavaPeerable) |
ForEach(IConsumer) |
Realiza la acción dada para cada elemento de |
GetHashCode() |
Devuelve el valor de código hash de esta colección. (Heredado de ICollection) |
Iterator() |
Devuelve un iterador sobre los elementos de este deque en la secuencia adecuada. |
Offer(Object) |
Inserta el elemento especificado en la cola representada por este deque (es decir, en la cola de este deque) si es posible hacerlo inmediatamente sin infringir las restricciones de capacidad, volviendo |
Offer(Object, Int64, TimeUnit) |
Inserta el elemento especificado en la cola representada por este deque (es decir, en la cola de este deque), esperando hasta el tiempo de espera especificado si es necesario para que el espacio esté disponible. |
OfferFirst(Object) |
Inserta el elemento especificado en la parte frontal de este deque si es posible hacerlo inmediatamente sin infringir las restricciones de capacidad, volviendo |
OfferFirst(Object, Int64, TimeUnit) |
Inserta el elemento especificado en la parte frontal de este deque, esperando hasta el tiempo de espera especificado si es necesario para que el espacio esté disponible. |
OfferLast(Object) |
Inserta el elemento especificado al final de este deque si es posible hacerlo inmediatamente sin infringir las restricciones de capacidad, volviendo |
OfferLast(Object, Int64, TimeUnit) |
Inserta el elemento especificado al final de este deque, esperando hasta el tiempo de espera especificado si es necesario para que el espacio esté disponible. |
Peek() |
Recupera, pero no quita, el encabezado de la cola representada por este deque (es decir, el primer elemento de este deque) o devuelve |
PeekFirst() |
Recupera, pero no quita, el primer elemento de este deque o devuelve |
PeekLast() |
Recupera, pero no quita, el último elemento de este deque o devuelve |
Poll() |
Recupera y quita el encabezado de la cola representada por este deque (es decir, el primer elemento de este deque) o devuelve |
Poll(Int64, TimeUnit) |
Recupera y quita el encabezado de la cola representada por este deque (es decir, el primer elemento de este deque), esperando hasta el tiempo de espera especificado si es necesario para que un elemento esté disponible. |
PollFirst() |
Recupera y quita el primer elemento de este deque o devuelve |
PollFirst(Int64, TimeUnit) |
Recupera y quita el primer elemento de este deque, esperando hasta el tiempo de espera especificado si es necesario para que un elemento esté disponible. |
PollLast() |
Recupera y quita el último elemento de este deque o devuelve |
PollLast(Int64, TimeUnit) |
Recupera y quita el último elemento de este deque, esperando hasta el tiempo de espera especificado si es necesario para que un elemento esté disponible. |
Pop() |
Extrae un elemento de la pila representada por este deque. (Heredado de IDeque) |
Push(Object) |
Inserta un elemento en la pila representada por este deque (es decir, en la cabeza de este deque) si es posible hacerlo inmediatamente sin infringir las restricciones de capacidad, iniciando un |
Put(Object) |
Inserta el elemento especificado en la cola representada por este deque (es decir, en la cola de este deque), esperando si es necesario para que el espacio esté disponible. |
PutFirst(Object) |
Inserta el elemento especificado en la parte frontal de este deque, esperando si es necesario para que el espacio esté disponible. |
PutLast(Object) |
Inserta el elemento especificado al final de este deque, esperando si es necesario para que el espacio esté disponible. |
RemainingCapacity() |
Devuelve el número de elementos adicionales que esta cola puede aceptar idealmente (en ausencia de restricciones de memoria o recursos) sin bloqueo o |
Remove() |
Recupera y quita el encabezado de la cola representada por este deque (es decir, el primer elemento de este deque). |
Remove(Object) |
Quita la primera aparición del elemento especificado de este deque. |
RemoveAll(ICollection) |
Quita todos los elementos de esta colección que también están incluidos en la colección especificada (operación opcional). (Heredado de ICollection) |
RemoveFirst() |
Recupera y quita el primer elemento de este deque. (Heredado de IDeque) |
RemoveFirstOccurrence(Object) |
Quita la primera aparición del elemento especificado de este deque. |
RemoveIf(IPredicate) |
Quita todos los elementos de esta colección que satisfacen el predicado especificado. (Heredado de ICollection) |
RemoveLast() |
Recupera y quita el último elemento de este deque. (Heredado de IDeque) |
RemoveLastOccurrence(Object) |
Quita la última aparición del elemento especificado de este deque. |
RetainAll(ICollection) |
Conserva solo los elementos de esta colección que se encuentran en la colección especificada (operación opcional). (Heredado de ICollection) |
SetJniIdentityHashCode(Int32) |
Establezca el valor devuelto por |
SetJniManagedPeerState(JniManagedPeerStates) |
Que |
SetPeerReference(JniObjectReference) |
Establezca el valor devuelto por |
Size() |
Devuelve el número de elementos de este deque. |
Spliterator() |
Crea un |
Take() |
Recupera y quita el encabezado de la cola representada por este deque (es decir, el primer elemento de este deque), esperando si es necesario hasta que un elemento esté disponible. |
TakeFirst() |
Recupera y quita el primer elemento de este deque, esperando si es necesario hasta que un elemento esté disponible. |
TakeLast() |
Recupera y quita el último elemento de este deque, esperando si es necesario hasta que un elemento esté disponible. |
ToArray() |
Devuelve una matriz que contiene todos los elementos de esta colección. (Heredado de ICollection) |
ToArray(IIntFunction) |
Devuelve una matriz que contiene todos los elementos de esta colección, utilizando la función proporcionada |
ToArray(Object[]) |
Devuelve una matriz que contiene todos los elementos de esta colección; el tipo en tiempo de ejecución de la matriz devuelta es el de la matriz especificada. (Heredado de ICollection) |
UnregisterFromRuntime() |
Anule el registro de esta instancia para que el entorno de ejecución no lo devuelva de invocaciones futuras Java.Interop.JniRuntime+JniValueManager.PeekValue . (Heredado de IJavaPeerable) |
Implementaciones de interfaz explícitas
IIterable.Spliterator() |
Crea un elemento |
Métodos de extensión
JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
JavaCast<TResult>(IJavaObject) |
Que |
GetJniTypeName(IJavaPeerable) |
Que |
OfferFirstAsync(IBlockingDeque, Object) |
Que |
OfferFirstAsync(IBlockingDeque, Object, Int64, TimeUnit) |
Que |
OfferLastAsync(IBlockingDeque, Object) |
Que |
OfferLastAsync(IBlockingDeque, Object, Int64, TimeUnit) |
Que |
PollFirstAsync(IBlockingDeque, Int64, TimeUnit) |
Que |
PollLastAsync(IBlockingDeque, Int64, TimeUnit) |
Que |
PutFirstAsync(IBlockingDeque, Object) |
Que |
PutLastAsync(IBlockingDeque, Object) |
Que |
TakeFirstAsync(IBlockingDeque) |
Que |
TakeLastAsync(IBlockingDeque) |
Que |
OfferAsync(IBlockingQueue, Object) |
Que |
OfferAsync(IBlockingQueue, Object, Int64, TimeUnit) |
Que |
PollAsync(IBlockingQueue, Int64, TimeUnit) |
Que |
PutAsync(IBlockingQueue, Object) |
Que |
TakeAsync(IBlockingQueue) |
Que |
ToEnumerable(IIterable) |
Que |
ToEnumerable<T>(IIterable) |
Que |