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

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

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

LinkedBlockingQueue.take介绍

[英]Lock held by take, poll, etc
[中]被接受、投票等持有的锁

代码示例

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

@Override
public Record<T> read() throws Exception {
  return queue.take();
}

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

public void await() throws InterruptedException {
  if (done) return;
  while (next == null) {
    next = queue.take();
    if (next == END_MARK) {
      next = null;
      // sentinel value to indicate the provider completed
      done = true;
      return;
    }
  }
}

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

/**
 *  Removes one envelope from the received messages queue or
 *  blocks until one is available.
 */
public Envelope read() throws InterruptedException
{
  return envelopes.take();
}

代码示例来源:origin: square/okhttp

private void drainQueue() throws Exception {
 for (HttpUrl url; (url = queue.take()) != null; ) {
  if (!fetchedUrls.add(url)) {
   continue;
  }
  Thread currentThread = Thread.currentThread();
  String originalName = currentThread.getName();
  currentThread.setName("Crawler " + url.toString());
  try {
   fetch(url);
  } catch (IOException e) {
   System.out.printf("XXX: %s %s%n", url, e);
  } finally {
   currentThread.setName(originalName);
  }
 }
}

代码示例来源:origin: Alluxio/alluxio

@Override
 public void run() {
  while (!mStopped) {
   try {
    AuditContext headContext = mAuditLogEntries.take();
    AUDIT_LOG.info(headContext.toString());
   } catch (InterruptedException e) {
    Thread.currentThread().interrupt();
    break;
   }
  }
 }
}

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

protected ReaderEvent getReaderEvent() throws IOException {
 try {
  ReaderEvent event = readerEvents.take();
  Preconditions.checkNotNull(event);
  return event;
 } catch (InterruptedException ie) {
  throw new RuntimeException("Interrupted while getting readerEvents, not expected: " + ie.getMessage(), ie);
 }
}

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

public ObjectContainer<T> take() throws InterruptedException
{
 final ObjectContainer<T> ret = queue.take();
 currentMemory.addAndGet(-ret.getSize());
 return ret;
}

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

public void run() {
  while (true) {
    try {
      ToSend m = sendqueue.take();
      process(m);
    } catch (InterruptedException e) {
      break;
    }
  }
}

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

public void assertEvent(Predicate<GobblinTrackingEvent> predicate, long timeout,
            TimeUnit timeUnit) throws TimeoutException, InterruptedException {
 GobblinTrackingEvent gte = timeout > 0 ? _events.poll(timeout, timeUnit) : _events.take();
 if (null == gte) {
  throw new TimeoutException();
 }
 if (!predicate.apply(gte)) {
  throw new AssertionError("Event predicate mismatch: " + gte);
 }
}

代码示例来源:origin: alibaba/jstorm

public static Object takeMessage(int port) throws InterruptedException {
  return getQueue(port).take();
}

代码示例来源:origin: Graylog2/graylog2-server

@Override
public void doRun() {
  while (serverStatus.getLifecycle() != Lifecycle.HALTING) {
    try {
      messages.getIndexFailureQueue()
          .take()
          .forEach(indexFailureService::saveWithoutValidation);
    } catch (Exception e) {
      LOG.error("Could not persist index failure.", e);
    }
  }
}

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

@Override
public E take() throws InterruptedException {
 if (Thread.interrupted())
  throw new InterruptedException();
 E result = super.take();
 postRemove(result);
 this.stats.remove();
 return result;
}

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

public static Object takeMessage(int port) throws InterruptedException {
  readerArrived(port);
  return getQueue(port).take();
}

代码示例来源:origin: ethereum/ethereumj

@Override
public synchronized T take() throws InterruptedException {
  if (isEmpty()) {
    return super.take();
  } else {
    T ret = Collections.min(this, (Comparator<? super T>) comparator);
    remove(ret);
    return ret;
  }
}

代码示例来源:origin: alibaba/jstorm

@Override
  public void run() {
    try {
      RunnableCallback r = queue.take();
      if (r == null) {
        return;
      }
      r.run();
      e = r.error();
      processInc();
    } catch (InterruptedException e) {
      LOG.info("Interrupted when processing event.");
    }
  }
}

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

@Override
public void run() {
  Random rand = new Random(Thread.currentThread().getId());
  try {
    while(true) {
      // If it is a read-only test, there will be no proposals..
      if (!proposals.isEmpty()){
        Request request = proposals.take();
        Thread.sleep(5 + rand.nextInt(95));
        commitProcessor.commit(request);
      }
    }
  } catch (InterruptedException e) {
    // ignore
  }
}

代码示例来源:origin: jankotek/mapdb

public void realRun() throws InterruptedException {
      threadsStarted.await();
      assertSame(one, q.take());
    }});
}

代码示例来源:origin: jankotek/mapdb

/**
 * take retrieves elements in FIFO order
 */
public void testTake() throws InterruptedException {
  LinkedBlockingQueue q = populatedQueue(SIZE);
  for (int i = 0; i < SIZE; ++i) {
    assertEquals(i, q.take());
  }
}

代码示例来源:origin: jankotek/mapdb

/**
 * An add following remove(x) succeeds
 */
public void testRemoveElementAndAdd() throws InterruptedException {
  LinkedBlockingQueue q = new LinkedBlockingQueue();
  assertTrue(q.add(new Integer(1)));
  assertTrue(q.add(new Integer(2)));
  assertTrue(q.remove(new Integer(1)));
  assertTrue(q.remove(new Integer(2)));
  assertTrue(q.add(new Integer(3)));
  assertNotNull(q.take());
}

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

@Override
public void run() {
  log.info(this.getServiceName() + " service started");
  while (!this.isStopped()) {
    try {
      PullRequest pullRequest = this.pullRequestQueue.take();
      this.pullMessage(pullRequest);
    } catch (InterruptedException ignored) {
    } catch (Exception e) {
      log.error("Pull Message Service Run Method exception", e);
    }
  }
  log.info(this.getServiceName() + " service end");
}

相关文章

微信公众号

最新文章

更多