|
Spec-Zone .ru
спецификации, руководства, описания, API
|
E - тип элементов сохранен в этом набореpublic interface TransferQueue<E> extends BlockingQueue<E>
BlockingQueue в котором производители могут ожидать потребителей, чтобы получить элементы. A TransferQueue может быть полезным например в приложениях передачи сообщений в который производители иногда (использующий метод transfer(E)) ждите получения элементов потребителями, вызывающими take или poll, в то время как в других случаях ставят в очередь элементы (через метод put) не ожидая получения. Неблокирование и версии тайм-аута tryTransfer также доступны. A TransferQueue май также быть запрошенным, через hasWaitingConsumer(), есть ли какие-либо потоки, ожидающие элементов, который является обратной аналогией с a peek работа. Как другие очереди блокирования, a TransferQueue может быть ограниченная емкость. Если так, предпринятая работа передачи может первоначально блокировать ожидание свободного места, и/или впоследствии блокировать ожидание приема потребителем. Отметьте это в очереди с нулевой емкостью, такой как SynchronousQueue, put и transfer эффективно синонимичны.
Этот интерфейс является элементом Платформы Наборов Java.
| Модификатор и Тип | Метод и Описание |
|---|---|
int |
getWaitingConsumerCount()
Возвращает оценку числа потребителей, ожидающего, чтобы получить элементы через
BlockingQueue.take() или синхронизированный poll. |
boolean |
hasWaitingConsumer()
Возвраты
true если есть по крайней мере один потребитель, ожидающий, чтобы получить элемент через BlockingQueue.take() или синхронизированный poll. |
void |
transfer(E e)
Передает элемент потребителю, ожидая в случае необходимости, чтобы сделать так.
|
boolean |
tryTransfer(E e)
Передает элемент ожидающему потребителю сразу, если возможный.
|
boolean |
tryTransfer(E e, long timeout, TimeUnit unit)
Передает элемент потребителю, если возможно сделать так прежде, чем тайм-аут протекает.
|
add, contains, drainTo, drainTo, offer, offer, poll, put, remainingCapacity, remove, takeaddAll, clear, containsAll, equals, hashCode, isEmpty, iterator, parallelStream, removeAll, removeIf, retainAll, size, spliterator, stream, toArray, toArrayforEachboolean tryTransfer(E e)
Более точно, сразу передает указанный элемент, если там существует потребитель, уже ожидающий, чтобы получить это (в BlockingQueue.take() или синхронизированный poll), иначе возврат false не ставя в очередь элемент.
e - элемент, чтобы передатьtrue если элемент был передан, еще falseClassCastException - если class указанного элемента препятствует тому, чтобы это было добавлено к этой очередиNullPointerException - если указанный элемент является нулемIllegalArgumentException - если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой очередиvoid transfer(E e) throws InterruptedException
Более точно, сразу передает указанный элемент, если там существует потребитель, уже ожидающий, чтобы получить это (в BlockingQueue.take() или синхронизированный poll), еще ожидает, пока элемент не получается потребителем.
e - элемент, чтобы передатьInterruptedException - если прервано, ожидая, когда элемент не оставляют ставившим в очередьClassCastException - если class указанного элемента препятствует тому, чтобы это было добавлено к этой очередиNullPointerException - если указанный элемент является нулемIllegalArgumentException - если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой очередиboolean tryTransfer(E e, long timeout, TimeUnit unit) throws InterruptedException
Более точно, сразу передает указанный элемент, если там существует потребитель, уже ожидающий, чтобы получить это (в BlockingQueue.take() или синхронизированный poll), еще ожидает, пока элемент не получается потребителем, возвращаясь false если указанное время ожидания протекает прежде, чем элемент может быть передан.
e - элемент, чтобы передатьtimeout - сколько времени ожидать перед отказом в модулях unitunit - a TimeUnit определение, как интерпретировать timeout параметрtrue в случае успеха, или false если указанное время ожидания протекает перед завершением, когда элемент не оставляют ставившим в очередьInterruptedException - если прервано, ожидая, когда элемент не оставляют ставившим в очередьClassCastException - если class указанного элемента препятствует тому, чтобы это было добавлено к этой очередиNullPointerException - если указанный элемент является нулемIllegalArgumentException - если некоторое свойство указанного элемента препятствует тому, чтобы это было добавлено к этой очередиboolean hasWaitingConsumer()
true если есть по крайней мере один потребитель, ожидающий, чтобы получить элемент через BlockingQueue.take() или синхронизированный poll. Возвращаемое значение представляет мгновенное положение дел.true если есть по крайней мере один ожидающий потребительint getWaitingConsumerCount()
BlockingQueue.take() или синхронизированный poll. Возвращаемое значение является приближением мгновенного положения дел, которое может быть неточным, если потребители завершились или бросили ожидать. Значение может быть полезным для контроля и эвристики, но не для управления синхронизацией. Реализации этого метода, вероятно, будут заметно медленнее чем те для hasWaitingConsumer().
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92