java.util.concurrent.LinkedBlockingDeque.iterator()方法的使用及代码示例

x33g5p2x  于2022-01-23 转载在 其他  
字(7.8k)|赞(0)|评价(0)|浏览(126)

本文整理了Java中java.util.concurrent.LinkedBlockingDeque.iterator()方法的一些代码示例,展示了LinkedBlockingDeque.iterator()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。LinkedBlockingDeque.iterator()方法的具体详情如下:
包路径:java.util.concurrent.LinkedBlockingDeque
类名称:LinkedBlockingDeque
方法名:iterator

LinkedBlockingDeque.iterator介绍

[英]Returns an iterator over the elements in this deque in proper sequence. The elements will be returned in order from first (head) to last (tail).

The returned iterator is a "weakly consistent" iterator that will never throw java.util.ConcurrentModificationException, and guarantees to traverse elements as they existed upon construction of the iterator, and may (but is not guaranteed to) reflect any modifications subsequent to construction.
[中]按正确的顺序返回此数据块中元素的迭代器。元素将按从第一个(头部)到最后一个(尾部)的顺序返回。
返回的迭代器是一个“弱一致性”迭代器,它永远不会抛出java。util。ConcurrentModificationException,并保证遍历迭代器构造时存在的元素,并且可能(但不保证)反映构造之后的任何修改。

代码示例

代码示例来源:origin: lealone/Lealone

@Override
public Iterator<Long> iterator() {
  return deque.iterator();
}

代码示例来源:origin: apache/zookeeper

private void cleanup() {
  clientCnxnSocket.cleanup();
  synchronized (pendingQueue) {
    for (Packet p : pendingQueue) {
      conLossPacket(p);
    }
    pendingQueue.clear();
  }
  // We can't call outgoingQueue.clear() here because
  // between iterating and clear up there might be new
  // packets added in queuePacket().
  Iterator<Packet> iter = outgoingQueue.iterator();
  while (iter.hasNext()) {
    Packet p = iter.next();
    conLossPacket(p);
    iter.remove();
  }
}

代码示例来源:origin: apache/zookeeper

@Override
void cleanup() {
  connectLock.lock();
  try {
    if (connectFuture != null) {
      connectFuture.cancel(false);
      connectFuture = null;
    }
    if (channel != null) {
      channel.close().syncUninterruptibly();
      channel = null;
    }
  } finally {
    connectLock.unlock();
  }
  Iterator<Packet> iter = outgoingQueue.iterator();
  while (iter.hasNext()) {
    Packet p = iter.next();
    if (p == WakeupPacket.getInstance()) {
      iter.remove();
    }
  }
}

代码示例来源:origin: apache/zookeeper

private Packet findSendablePacket(LinkedBlockingDeque<Packet> outgoingQueue,
                 boolean tunneledAuthInProgres) {
  if (outgoingQueue.isEmpty()) {
    return null;
  }
  // If we've already starting sending the first packet, we better finish
  if (outgoingQueue.getFirst().bb != null || !tunneledAuthInProgres) {
    return outgoingQueue.getFirst();
  }
  // Since client's authentication with server is in progress,
  // send only the null-header packet queued by primeConnection().
  // This packet must be sent so that the SASL authentication process
  // can proceed, but all other packets should wait until
  // SASL authentication completes.
  Iterator<Packet> iter = outgoingQueue.iterator();
  while (iter.hasNext()) {
    Packet p = iter.next();
    if (p.requestHeader == null) {
      // We've found the priming-packet. Move it to the beginning of the queue.
      iter.remove();
      outgoingQueue.addFirst(p);
      return p;
    } else {
      // Non-priming packet: defer it until later, leaving it in the queue
      // until authentication completes.
      LOG.debug("deferring non-priming packet {} until SASL authentation completes.", p);
    }
  }
  return null;
}

代码示例来源:origin: numenta/htm.java

/**
 * Returns an {@link Iterator} over the contents of this {@code Deque}
 * @return
 */
public Iterator<E> iterator() {
  return backingList.iterator();
}

代码示例来源:origin: com.netflix.dyno/dyno-core

private List<Bucket> getBuckets(int lookback) {
  
  List<Bucket> list = new ArrayList<Bucket>();
  int count = 0;
  Iterator<Bucket> iter = queue.iterator();
  
  while (iter.hasNext() && count < lookback) {
    list.add(iter.next());
    count++;
  }
  return list;
}

代码示例来源:origin: com.netflix.dyno/dyno-core

private List<Bucket> getAllBuckets() {
  
  List<Bucket> list = new ArrayList<Bucket>();
  Iterator<Bucket> iter = queue.iterator();
  
  while (iter.hasNext()) {
    list.add(iter.next());
  }
  return list;
}

代码示例来源:origin: codefollower/Tomcat-Research

private boolean hasBufferedData() {
    boolean result = false;
    if (bufferedWrites!=null) {
      Iterator<ByteBufferHolder> iter = bufferedWrites.iterator();
      while (!result && iter.hasNext()) {
        result = iter.next().hasData();
      }
    }
    return result;
  }
}

代码示例来源:origin: org.alfresco/alfresco-solrclient-lib

@Override
public Iterator<T> iterator()
{
  return getDeque().iterator();
}

代码示例来源:origin: org.ops4j.pax.tipi/org.ops4j.pax.tipi.tomcat-embed-core

public boolean write(Sink sink, boolean blocking) throws IOException {
  Iterator<ByteBufferHolder> bufIter = buffers.iterator();
  boolean dataLeft = false;
  while (!dataLeft && bufIter.hasNext()) {
    ByteBufferHolder buffer = bufIter.next();
    buffer.flip();
    dataLeft = sink.writeFromBuffer(buffer.getBuf(), blocking);
    if (!dataLeft) {
      bufIter.remove();
    }
  }
  return dataLeft;
}

代码示例来源:origin: com.crawljax/crawljax

/**
 * Removes Candidate Actions on candidateElements that have been removed by the pre-state crawl
 * plugin.
 * 
 * @param candidateElements
 */
public void filterCandidateActions(List<CandidateElement> candidateElements) {
  if (candidateActions == null) {
    return;
  }
  Iterator<CandidateCrawlAction> iter = candidateActions.iterator();
  CandidateCrawlAction currentAction;
  while (iter.hasNext()) {
    currentAction = iter.next();
    if (!candidateElements.contains(currentAction.getCandidateElement())) {
      iter.remove();
      LOGGER.info("filtered candidate action: " + currentAction.getEventType().name()
          + " on " + currentAction.getCandidateElement().getGeneralString());
    }
  }
}

代码示例来源:origin: codefollower/Tomcat-Research

private void flushBufferedData() throws IOException {
  if (responseMsgPos > -1) {
    // Must be using non-blocking IO
    // Partially written response message. Try and complete it.
    writeResponseMessage(false);
  }
  while (responseMsgPos == -1 && bufferedWrites.size() > 0) {
    // Try and write any remaining buffer data
    Iterator<ByteBufferHolder> holders = bufferedWrites.iterator();
    ByteBufferHolder holder = holders.next();
    holder.flip();
    ByteBuffer buffer = holder.getBuf();
    int initialBufferSize = buffer.remaining();
    while (responseMsgPos == -1 && buffer.remaining() > 0) {
      transferToResponseMsg(buffer);
      writeResponseMessage(false);
    }
    bytesWritten += (initialBufferSize - buffer.remaining());
    if (buffer.remaining() == 0) {
      holders.remove();
    }
  }
}

代码示例来源:origin: org.ops4j.pax.tipi/org.ops4j.pax.tipi.tomcat-embed-core

boolean write(SocketWrapperBase<?> socketWrapper, boolean blocking) throws IOException {
  Iterator<ByteBufferHolder> bufIter = buffers.iterator();
  boolean dataLeft = false;
  while (!dataLeft && bufIter.hasNext()) {
    ByteBufferHolder buffer = bufIter.next();
    buffer.flip();
    if (blocking) {
      socketWrapper.writeBlocking(buffer.getBuf());
    } else {
      socketWrapper.writeNonBlockingInternal(buffer.getBuf());
    }
    if (buffer.getBuf().remaining() == 0) {
      bufIter.remove();
    } else {
      dataLeft = true;
    }
  }
  return dataLeft;
}

代码示例来源:origin: org.apache.geode/gemfire-core

private void trimSelectorPool(LinkedBlockingDeque<SelectorInfo> selectorPool) {
  SelectorInfo selectorInfo = selectorPool.peekLast();
  //iterate backwards and remove any selectors that have been marked
  //once we hit a selector that has yet to be marked, we can then mark the remaining
  while (selectorInfo != null && selectorInfo.markForClean) {
   selectorInfo = selectorPool.pollLast();
   //check the flag again just to be sure
   if (selectorInfo.markForClean ) {
    selectorInfo.close();
   }
   else {
    selectorPool.addFirst(selectorInfo);
   }
   selectorInfo = selectorPool.peekLast();
  }
  
  //Mark all the selectors
  Iterator<SelectorInfo> selectorIterator = selectorPool.iterator();
  while (selectorIterator.hasNext()) {
   selectorIterator.next().markForClean = true;
  }
 }
}

代码示例来源:origin: codefollower/Tomcat-Research

@Override
protected synchronized boolean flushBuffer(boolean block)
    throws IOException {
  wrapper.access();
  if (hasMoreDataToFlush()) {
    writeToSocket(block);
  }
  if (bufferedWrites.size() > 0) {
    Iterator<ByteBufferHolder> bufIter = bufferedWrites.iterator();
    while (!hasMoreDataToFlush() && bufIter.hasNext()) {
      ByteBufferHolder buffer = bufIter.next();
      buffer.flip();
      while (!hasMoreDataToFlush() && buffer.getBuf().remaining()>0) {
        transfer(buffer.getBuf(), bbuf);
        if (buffer.getBuf().remaining() == 0) {
          bufIter.remove();
        }
        writeToSocket(block);
        //here we must break if we didn't finish the write
      }
    }
  }
  return hasMoreDataToFlush();
}

代码示例来源:origin: codefollower/Tomcat-Research

Iterator<ByteBufferHolder> bufIter = bufferedWrites.iterator();
while (!hasMoreDataToFlush() && bufIter.hasNext()) {
  ByteBufferHolder buffer = bufIter.next();

代码示例来源:origin: stackoverflow.com

return stack.iterator();

相关文章

微信公众号

最新文章

更多