本文整理了Java中java.util.Queue.poll
方法的一些代码示例,展示了Queue.poll
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Queue.poll
方法的具体详情如下:
包路径:java.util.Queue
类名称: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;
}
内容来源于网络,如有侵权,请联系作者删除!