java.util.Queue.poll()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(8.3k)|赞(0)|评价(0)|浏览(594)

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

Queue.poll介绍

[英]Retrieves and removes the head of this queue, or returns null if this queue is empty.
[中]检索并删除此队列的头,如果此队列为空,则返回null。

代码示例

代码示例来源:origin: netty/netty

private void fetchWatchees() {
  for (;;) {
    Entry e = pendingEntries.poll();
    if (e == null) {
      break;
    }
    if (e.isWatch) {
      watchees.add(e);
    } else {
      watchees.remove(e);
    }
  }
}

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

private void trimStrongReferencesIfNecessary() {
  //trim the strong ref queue if necessary:
  while (strongReferences.size() > RETENTION_SIZE) {
    strongReferences.poll();
  }
}

代码示例来源:origin: org.mockito/mockito-core

public Object answer(InvocationOnMock invocation) throws Throwable {
  //see ThreadsShareGenerouslyStubbedMockTest
  Answer a;
  synchronized(answers) {
    a = answers.size() == 1 ? answers.peek() : answers.poll();
  }
  return a.answer(invocation);
}

代码示例来源:origin: debezium/debezium

@Override
public List<SourceRecord> poll() throws InterruptedException {
  if (records.isEmpty()) {
    // block forever, as this thread will be interrupted if/when the task is stopped ...
    new CountDownLatch(1).await();
  }
  if (running.get()) {
    // Still running, so process whatever is in the queue ...
    List<SourceRecord> results = new ArrayList<>();
    int record = 0;
    while (record < recordsPerBatch && !records.isEmpty()) {
      results.add(records.poll());
    }
    return results;
  }
  // No longer running ...
  return null;
}

代码示例来源:origin: lettuce-io/lettuce-core

private static <T> List<T> drainCommands(Queue<T> source) {
  List<T> target = new ArrayList<>(source.size());
  T cmd;
  while ((cmd = source.poll()) != null) {
    target.add(cmd);
  }
  return target;
}

代码示例来源:origin: ReactiveX/RxJava

while (!dirs.isEmpty()) {
  f = dirs.poll();
              lines.add(line);

代码示例来源:origin: apache/incubator-pinot

private <U> Collection<U> reap(Queue<TimedObject<U>> queue, long timeout) {
 List<U> toReap = new ArrayList<U>();
 long now = System.currentTimeMillis();
 long target = now - timeout;
 synchronized (_lock) {
  int excess = _poolSize - _minSize;
  for (TimedObject<U> p; ((p = queue.peek()) != null) && (p.getTime() < target) && (excess > 0); excess--) {
   toReap.add(queue.poll().get());
   _totalTimedOut++;
  }
 }
 return toReap;
}

代码示例来源:origin: gocd/gocd

public Queue<PipelineConfigQueueEntry> buildQueue() {
  Queue<PipelineConfigQueueEntry> configQueue = new LinkedList<>();
  Queue<PipelineConfigDependencyEntry> tmp = new LinkedList<>();
  tmp.add(new PipelineConfigDependencyEntry(this, new ArrayList<>()));
  while (true) {
    PipelineConfigDependencyEntry currentHead = tmp.poll();
    if (currentHead == null) {
      break;
    }
    PipelineConfigDependencyGraph current = currentHead.getNode();
    List<PipelineConfig> currentPath = currentHead.getPath();
    currentPath.add(current.getCurrent());
    configQueue.add(new PipelineConfigQueueEntry(current.getCurrent(), new ArrayList<>(currentPath)));
    for (PipelineConfigDependencyGraph upstream : current.getUpstreamDependencies()) {
      List<PipelineConfig> parentsPath = new ArrayList<>(currentPath);
      tmp.add(new PipelineConfigDependencyEntry(upstream, parentsPath));
    }
  }
  return removeHead(configQueue);
}

代码示例来源:origin: Tencent/tinker

/**
 * delete all file
 *
 * @param directory
 */
public static void deleteAllFile(String directory) {
  List<File> fileList = new ArrayList<File>();
  File directoryFile = new File(directory);
  Queue<File> queue = new ConcurrentLinkedQueue<File>();
  queue.add(directoryFile);
  while (!queue.isEmpty()) {
    File file = queue.poll();
    if (file.isDirectory()) {
      File[] fileArray = file.listFiles();
      if (fileArray != null) {
        queue.addAll(Arrays.asList(fileArray));
      }
    }
    fileList.add(file);
  }
  for (int i = fileList.size() - 1; i >= 0; i--) {
    fileList.get(i).delete();
  }
}

代码示例来源:origin: scwang90/SmartRefreshLayout

protected View findScrollableViewInternal(View content, boolean selfable) {
  View scrollableView = null;
  Queue<View> views = new LinkedList<>(Collections.singletonList(content));
  while (!views.isEmpty() && scrollableView == null) {
    View view = views.poll();
    if (view != null) {
      if ((selfable || view != content) && isContentView(view)) {
        scrollableView = view;
      } else if (view instanceof ViewGroup) {
        ViewGroup group = (ViewGroup) view;
        for (int j = 0; j < group.getChildCount(); j++) {
          views.add(group.getChildAt(j));
        }
      }
    }
  }
  return scrollableView == null ? content : scrollableView;
}

代码示例来源:origin: google/guava

/**
 * Drains the recency queue, updating eviction metadata that the entries therein were read in
 * the specified relative order. This currently amounts to adding them to relevant eviction
 * lists (accounting for the fact that they could have been removed from the map since being
 * added to the recency queue).
 */
@GuardedBy("this")
void drainRecencyQueue() {
 ReferenceEntry<K, V> e;
 while ((e = recencyQueue.poll()) != null) {
  // An entry may be in the recency queue despite it being removed from
  // the map . This can occur when the entry was concurrently read while a
  // writer is removing it from the segment or after a clear has removed
  // all of the segment's entries.
  if (accessQueue.contains(e)) {
   accessQueue.add(e);
  }
 }
}

代码示例来源:origin: cats-oss/android-gpuimage

private void runAll(Queue<Runnable> queue) {
  synchronized (queue) {
    while (!queue.isEmpty()) {
      queue.poll().run();
    }
  }
}

代码示例来源:origin: jersey/jersey

private void onWriteCompleted() {
  synchronized (SslFilter.this) {
    // task in progress is at the head of the queue -> remove it
    pendingWrites.poll();
    Runnable next = pendingWrites.peek();
    if (next != null) {
      next.run();
    }
  }
}

代码示例来源:origin: spring-projects/spring-framework

@Override
protected void flushCache() throws SockJsTransportFailureException {
  while (!getMessageCache().isEmpty()) {
    String message = getMessageCache().poll();
    SockJsMessageCodec messageCodec = getSockJsServiceConfig().getMessageCodec();
    SockJsFrame frame = SockJsFrame.messageFrame(messageCodec, message);
    writeFrame(frame);
    this.byteCount += (frame.getContentBytes().length + 1);
    if (logger.isTraceEnabled()) {
      logger.trace(this.byteCount + " bytes written so far, " +
          getMessageCache().size() + " more messages not flushed");
    }
    if (this.byteCount >= getSockJsServiceConfig().getStreamBytesLimit()) {
      logger.trace("Streamed bytes limit reached, recycling current request");
      resetRequest();
      this.byteCount = 0;
      break;
    }
  }
  scheduleHeartbeat();
}

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

/**
 * @throws Exception If failed.
 */
@Test
public void testArrayDeque() throws Exception {
  Queue<Integer> queue = new ArrayDeque<>();
  for (int i = 0; i < 100; i++)
    queue.add(i);
  Queue<Integer> newQueue = marshalUnmarshal(queue);
  assertEquals(queue.size(), newQueue.size());
  Integer i;
  while ((i = newQueue.poll()) != null)
    assertEquals(queue.poll(), i);
}

代码示例来源:origin: JCTools/JCTools

private static <T> void assertQueueEmpty(Queue<T> queue)
{
  assertNull(queue.peek());
  assertNull(queue.poll());
  assertTrue(queue.isEmpty());
  assertEquals(0, queue.size());
}

代码示例来源:origin: apache/incubator-shardingsphere

@Override
  public boolean next() throws SQLException {
    if (orderByValuesQueue.isEmpty()) {
      return false;
    }
    if (isFirstNext) {
      isFirstNext = false;
      return true;
    }
    OrderByValue firstOrderByValue = orderByValuesQueue.poll();
    if (firstOrderByValue.next()) {
      orderByValuesQueue.offer(firstOrderByValue);
    }
    if (orderByValuesQueue.isEmpty()) {
      return false;
    }
    setCurrentQueryResult(orderByValuesQueue.peek().getQueryResult());
    return true;
  }
}

代码示例来源:origin: twosigma/beakerx

private static List<MessageHolder> createConsoleResult(SimpleEvaluationObject seo, Message message) {
 List<MessageHolder> result = new ArrayList<>();
 while (!seo.getConsoleOutput().isEmpty()) {
  ConsoleOutput co = seo.getConsoleOutput().poll(); //FIFO : peek to see, poll -- removes the data
  result.add(new MessageHolder(SocketEnum.IOPUB_SOCKET, buildOutputMessage(message, co.getText(), co.isError())));
 }
 return result;
}

代码示例来源:origin: redisson/redisson

private void fetchWatchees() {
  for (;;) {
    Entry e = pendingEntries.poll();
    if (e == null) {
      break;
    }
    if (e.isWatch) {
      watchees.add(e);
    } else {
      watchees.remove(e);
    }
  }
}

代码示例来源:origin: eclipse-vertx/vert.x

@Override
public MessageConsumer<T> setMaxBufferedMessages(int maxBufferedMessages) {
 Arguments.require(maxBufferedMessages >= 0, "Max buffered messages cannot be negative");
 List<Message<T>> discarded;
 Handler<Message<T>> discardHandler;
 synchronized (this) {
  this.maxBufferedMessages = maxBufferedMessages;
  int overflow = pending.size() - maxBufferedMessages;
  if (overflow <= 0) {
   return this;
  }
  discardHandler = this.discardHandler;
  if (discardHandler == null) {
   while (pending.size() > maxBufferedMessages) {
    pending.poll();
   }
   return this;
  }
  discarded = new ArrayList<>(overflow);
  while (pending.size() > maxBufferedMessages) {
   discarded.add(pending.poll());
  }
 }
 for (Message<T> msg : discarded) {
  discardHandler.handle(msg);
 }
 return this;
}

相关文章