本文整理匯總了Java中java.util.concurrent.PriorityBlockingQueue.put方法的典型用法代碼示例。如果您正苦於以下問題:Java PriorityBlockingQueue.put方法的具體用法?Java PriorityBlockingQueue.put怎麽用?Java PriorityBlockingQueue.put使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類java.util.concurrent.PriorityBlockingQueue
的用法示例。
在下文中一共展示了PriorityBlockingQueue.put方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: testDrainToWithActivePut
import java.util.concurrent.PriorityBlockingQueue; //導入方法依賴的package包/類
/**
* drainTo empties queue
*/
public void testDrainToWithActivePut() throws InterruptedException {
final PriorityBlockingQueue q = populatedQueue(SIZE);
Thread t = new Thread(new CheckedRunnable() {
public void realRun() {
q.put(new Integer(SIZE + 1));
}});
t.start();
ArrayList l = new ArrayList();
q.drainTo(l);
assertTrue(l.size() >= SIZE);
for (int i = 0; i < SIZE; ++i)
assertEquals(l.get(i), new Integer(i));
t.join();
assertTrue(q.size() + l.size() >= SIZE);
}
示例2: testPut
import java.util.concurrent.PriorityBlockingQueue; //導入方法依賴的package包/類
/**
* all elements successfully put are contained
*/
public void testPut() {
PriorityBlockingQueue q = new PriorityBlockingQueue(SIZE);
for (int i = 0; i < SIZE; ++i) {
Integer x = new Integer(i);
q.put(x);
assertTrue(q.contains(x));
}
assertEquals(SIZE, q.size());
}
示例3: pullTask
import java.util.concurrent.PriorityBlockingQueue; //導入方法依賴的package包/類
public PriorityBlockingQueue<Job> pullTask(int size){
PriorityBlockingQueue<Job> queues = new PriorityTaskContainer<>(size);
for(int i = 0; i < size; i++){
queues.put(poll());
}
return queues;
}
示例4: enqueueLog
import java.util.concurrent.PriorityBlockingQueue; //導入方法依賴的package包/類
@Override
public void enqueueLog(Path log) {
String logPrefix = DefaultWALProvider.getWALPrefixFromWALName(log.getName());
PriorityBlockingQueue<Path> queue = queues.get(logPrefix);
if (queue == null) {
queue = new PriorityBlockingQueue<Path>(queueSizePerGroup, new LogsComparator());
queues.put(logPrefix, queue);
if (this.sourceRunning) {
// new wal group observed after source startup, start a new worker thread to track it
// notice: it's possible that log enqueued when this.running is set but worker thread
// still not launched, so it's necessary to check workerThreads before start the worker
final ReplicationSourceWorkerThread worker =
new ReplicationSourceWorkerThread(logPrefix, queue, replicationQueueInfo, this);
ReplicationSourceWorkerThread extant = workerThreads.putIfAbsent(logPrefix, worker);
if (extant != null) {
LOG.debug("Someone has beat us to start a worker thread for wal group " + logPrefix);
} else {
LOG.debug("Starting up worker for wal group " + logPrefix);
worker.startup();
}
}
}
queue.put(log);
int queueSize = logQueueSize.incrementAndGet();
this.metrics.setSizeOfLogQueue(queueSize);
// This will log a warning for each new log that gets created above the warn threshold
if (queue.size() > this.logQueueWarnThreshold) {
LOG.warn("WAL group " + logPrefix + " queue size: " + queueSize
+ " exceeds value of replication.source.log.queue.warn: " + logQueueWarnThreshold);
}
}