Java 类java.util.concurrent.DelayQueue 实例源码
项目:guava-mock
文件:ArbitraryInstancesTest.java
public void testGet_concurrent() {
assertTrue(ArbitraryInstances.get(BlockingDeque.class).isEmpty());
assertTrue(ArbitraryInstances.get(BlockingQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(DelayQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(SynchronousQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(PriorityBlockingQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(ConcurrentMap.class).isEmpty());
assertTrue(ArbitraryInstances.get(ConcurrentNavigableMap.class).isEmpty());
ArbitraryInstances.get(Executor.class).execute(ArbitraryInstances.get(Runnable.class));
assertNotNull(ArbitraryInstances.get(ThreadFactory.class));
assertFreshInstanceReturned(
BlockingQueue.class, BlockingDeque.class, PriorityBlockingQueue.class,
DelayQueue.class, SynchronousQueue.class,
ConcurrentMap.class, ConcurrentNavigableMap.class,
AtomicReference.class, AtomicBoolean.class,
AtomicInteger.class, AtomicLong.class, AtomicDouble.class);
}
项目:openjdk-jdk10
文件:Stress.java
public static void main(String[] args) throws Throwable {
final DelayQueue<Delayed> q = new DelayQueue<>();
final long t0 = System.nanoTime();
for (long i = 0; i < 1000; i++) {
final long expiry = t0 + i*10L*1000L*1000L;
q.add(new Delayed() {
public long getDelay(TimeUnit unit) {
return unit.convert(expiry - System.nanoTime(),
NANOSECONDS);
}
public int compareTo(Delayed x) {
long d = getDelay(NANOSECONDS)
- x.getDelay(NANOSECONDS);
return d < 0 ? -1 : d > 0 ? 1 : 0; }});
}
for (int i = 0; i < 300; i++)
new Thread() { public void run() {
try {
while (!q.isEmpty())
q.poll(10L, TimeUnit.SECONDS);
} catch (Throwable t) { t.printStackTrace(); }
}}.start();
}
项目:openjdk-jdk10
文件:Iterate.java
private static void realMain(String[] args) throws Throwable {
Godot[] godots = new Godot[] { new Godot(), new Godot(), new Godot() };
DelayQueue<Godot> q = new DelayQueue<>(Arrays.asList(godots));
Iterator<Godot> it = q.iterator();
q.clear();
check(it.hasNext());
equal(it.next(), godots[0]);
it.remove();
check(q.isEmpty());
q.addAll(Arrays.asList(godots));
it = q.iterator();
check(it.hasNext());
it.next();
equal(it.next(), godots[1]);
it.remove();
equal(q.size(), 2);
check(q.contains(godots[0]));
check(q.contains(godots[2]));
}
项目:openjdk-jdk10
文件:DelayQueueTest.java
/**
* retainAll(c) retains only those elements of c and reports true if changed
*/
public void testRetainAll() {
DelayQueue q = populatedQueue(SIZE);
DelayQueue p = populatedQueue(SIZE);
for (int i = 0; i < SIZE; ++i) {
boolean changed = q.retainAll(p);
if (i == 0)
assertFalse(changed);
else
assertTrue(changed);
assertTrue(q.containsAll(p));
assertEquals(SIZE - i, q.size());
p.remove();
}
}
项目:openjdk-jdk10
文件:DelayQueueTest.java
/**
* timed poll transfers elements across Executor tasks
*/
public void testPollInExecutor() {
final DelayQueue q = new DelayQueue();
final CheckedBarrier threadsStarted = new CheckedBarrier(2);
final ExecutorService executor = Executors.newFixedThreadPool(2);
try (PoolCleaner cleaner = cleaner(executor)) {
executor.execute(new CheckedRunnable() {
public void realRun() throws InterruptedException {
assertNull(q.poll());
threadsStarted.await();
assertNotNull(q.poll(LONG_DELAY_MS, MILLISECONDS));
checkEmpty(q);
}});
executor.execute(new CheckedRunnable() {
public void realRun() throws InterruptedException {
threadsStarted.await();
q.put(new PDelay(1));
}});
}
}
项目:openjdk-jdk10
文件:DelayQueueTest.java
/**
* Delayed actions do not occur until their delay elapses
*/
public void testDelay() throws InterruptedException {
DelayQueue<NanoDelay> q = new DelayQueue<>();
for (int i = 0; i < SIZE; ++i)
q.add(new NanoDelay(1000000L * (SIZE - i)));
long last = 0;
for (int i = 0; i < SIZE; ++i) {
NanoDelay e = q.take();
long tt = e.getTriggerTime();
assertTrue(System.nanoTime() - tt >= 0);
if (i != 0)
assertTrue(tt >= last);
last = tt;
}
assertTrue(q.isEmpty());
}
项目:openjdk-jdk10
文件:DelayQueueTest.java
/**
* drainTo(c) empties queue into another collection c
*/
public void testDrainTo() {
DelayQueue q = new DelayQueue();
PDelay[] elems = new PDelay[SIZE];
for (int i = 0; i < SIZE; ++i) {
elems[i] = new PDelay(i);
q.add(elems[i]);
}
ArrayList l = new ArrayList();
q.drainTo(l);
assertEquals(0, q.size());
for (int i = 0; i < SIZE; ++i)
assertEquals(elems[i], l.get(i));
q.add(elems[0]);
q.add(elems[1]);
assertFalse(q.isEmpty());
assertTrue(q.contains(elems[0]));
assertTrue(q.contains(elems[1]));
l.clear();
q.drainTo(l);
assertEquals(0, q.size());
assertEquals(2, l.size());
for (int i = 0; i < 2; ++i)
assertEquals(elems[i], l.get(i));
}
项目:googles-monorepo-demo
文件:ArbitraryInstancesTest.java
public void testGet_concurrent() {
assertTrue(ArbitraryInstances.get(BlockingDeque.class).isEmpty());
assertTrue(ArbitraryInstances.get(BlockingQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(DelayQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(SynchronousQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(PriorityBlockingQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(ConcurrentMap.class).isEmpty());
assertTrue(ArbitraryInstances.get(ConcurrentNavigableMap.class).isEmpty());
ArbitraryInstances.get(Executor.class).execute(ArbitraryInstances.get(Runnable.class));
assertNotNull(ArbitraryInstances.get(ThreadFactory.class));
assertFreshInstanceReturned(
BlockingQueue.class, BlockingDeque.class, PriorityBlockingQueue.class,
DelayQueue.class, SynchronousQueue.class,
ConcurrentMap.class, ConcurrentNavigableMap.class,
AtomicReference.class, AtomicBoolean.class,
AtomicInteger.class, AtomicLong.class, AtomicDouble.class);
}
项目:openjdk9
文件:Stress.java
public static void main(String[] args) throws Throwable {
final DelayQueue<Delayed> q = new DelayQueue<Delayed>();
final long t0 = System.nanoTime();
for (long i = 0; i < 1000; i++) {
final long expiry = t0 + i*10L*1000L*1000L;
q.add(new Delayed() {
public long getDelay(TimeUnit unit) {
return unit.convert(expiry - System.nanoTime(),
NANOSECONDS);
}
public int compareTo(Delayed x) {
long d = getDelay(NANOSECONDS)
- x.getDelay(NANOSECONDS);
return d < 0 ? -1 : d > 0 ? 1 : 0; }});
}
for (int i = 0; i < 300; i++)
new Thread() { public void run() {
try {
while (!q.isEmpty())
q.poll(10L, TimeUnit.SECONDS);
} catch (Throwable t) { t.printStackTrace(); }
}}.start();
}
项目:openjdk9
文件:Iterate.java
private static void realMain(String[] args) throws Throwable {
Godot[] godots = new Godot[] { new Godot(), new Godot(), new Godot() };
DelayQueue<Godot> q = new DelayQueue<Godot>(Arrays.asList(godots));
Iterator<Godot> it = q.iterator();
q.clear();
check(it.hasNext());
equal(it.next(), godots[0]);
it.remove();
check(q.isEmpty());
q.addAll(Arrays.asList(godots));
it = q.iterator();
check(it.hasNext());
it.next();
equal(it.next(), godots[1]);
it.remove();
equal(q.size(), 2);
check(q.contains(godots[0]));
check(q.contains(godots[2]));
}
项目:openjdk9
文件:DelayQueueTest.java
/**
* retainAll(c) retains only those elements of c and reports true if changed
*/
public void testRetainAll() {
DelayQueue q = populatedQueue(SIZE);
DelayQueue p = populatedQueue(SIZE);
for (int i = 0; i < SIZE; ++i) {
boolean changed = q.retainAll(p);
if (i == 0)
assertFalse(changed);
else
assertTrue(changed);
assertTrue(q.containsAll(p));
assertEquals(SIZE - i, q.size());
p.remove();
}
}
项目:openjdk9
文件:DelayQueueTest.java
/**
* timed poll transfers elements across Executor tasks
*/
public void testPollInExecutor() {
final DelayQueue q = new DelayQueue();
final CheckedBarrier threadsStarted = new CheckedBarrier(2);
final ExecutorService executor = Executors.newFixedThreadPool(2);
try (PoolCleaner cleaner = cleaner(executor)) {
executor.execute(new CheckedRunnable() {
public void realRun() throws InterruptedException {
assertNull(q.poll());
threadsStarted.await();
assertNotNull(q.poll(LONG_DELAY_MS, MILLISECONDS));
checkEmpty(q);
}});
executor.execute(new CheckedRunnable() {
public void realRun() throws InterruptedException {
threadsStarted.await();
q.put(new PDelay(1));
}});
}
}
项目:openjdk9
文件:DelayQueueTest.java
/**
* Delayed actions do not occur until their delay elapses
*/
public void testDelay() throws InterruptedException {
DelayQueue<NanoDelay> q = new DelayQueue<NanoDelay>();
for (int i = 0; i < SIZE; ++i)
q.add(new NanoDelay(1000000L * (SIZE - i)));
long last = 0;
for (int i = 0; i < SIZE; ++i) {
NanoDelay e = q.take();
long tt = e.getTriggerTime();
assertTrue(System.nanoTime() - tt >= 0);
if (i != 0)
assertTrue(tt >= last);
last = tt;
}
assertTrue(q.isEmpty());
}
项目:openjdk9
文件:DelayQueueTest.java
/**
* drainTo(c) empties queue into another collection c
*/
public void testDrainTo() {
DelayQueue q = new DelayQueue();
PDelay[] elems = new PDelay[SIZE];
for (int i = 0; i < SIZE; ++i) {
elems[i] = new PDelay(i);
q.add(elems[i]);
}
ArrayList l = new ArrayList();
q.drainTo(l);
assertEquals(0, q.size());
for (int i = 0; i < SIZE; ++i)
assertEquals(elems[i], l.get(i));
q.add(elems[0]);
q.add(elems[1]);
assertFalse(q.isEmpty());
assertTrue(q.contains(elems[0]));
assertTrue(q.contains(elems[1]));
l.clear();
q.drainTo(l);
assertEquals(0, q.size());
assertEquals(2, l.size());
for (int i = 0; i < 2; ++i)
assertEquals(elems[i], l.get(i));
}
项目:dmaap-framework
文件:HostSelector.java
public HostSelector(Collection<String> baseHosts, String signature)
{
if (baseHosts.size() < 1)
{
throw new IllegalArgumentException("At least one host must be provided.");
}
this.fBaseHosts = new TreeSet(baseHosts);
this.fBlacklist = new DelayQueue();
this.fIdealHost = null;
if (signature == null) {
return;
}
int index = Math.abs(signature.hashCode()) % baseHosts.size();
Iterator it = this.fBaseHosts.iterator();
while (index-- > 0)
{
it.next();
}
this.fIdealHost = ((String)it.next());
}
项目:dmaap-framework
文件:HostSelector.java
public HostSelector ( Collection<String> baseHosts, String signature )
{
if ( baseHosts.size () < 1 )
{
throw new IllegalArgumentException ( "At least one host must be provided." );
}
fBaseHosts = new TreeSet<String> ( baseHosts );
fBlacklist = new DelayQueue<BlacklistEntry> ();
fIdealHost = null;
if ( signature != null )
{
// map the signature into an index in the host set
int index = Math.abs ( signature.hashCode () ) % baseHosts.size();
// iterate to the selected host
Iterator<String> it = fBaseHosts.iterator ();
while ( index-- > 0 )
{
it.next ();
}
fIdealHost = it.next ();
}
}
项目:dmaap-framework
文件:EntityLruCache.java
public EntityLruCache ( int maxSize, long maxObjCacheTime, TimeUnit maxObjCacheTimeUnit )
{
//A load factor > 1 along with a size limit guarantees that the map will not be resized
super(maxSize, 1.25f, true);
if (maxSize <= 0)
throw new IllegalArgumentException("Cache size must be greater than 0");
this.MAX_ENTRIES = maxSize;
this.hits = 0;
this.misses = 0;
fMaxAgeMs = TimeUnit.MILLISECONDS.convert ( maxObjCacheTime, maxObjCacheTimeUnit );
fTimers = new DelayQueue<TimerEntry> ();
fClock = null;
}
项目:emodb
文件:LocalDataCenterEndPointProvider.java
@VisibleForTesting
LocalDataCenterEndPointProvider(CuratorFramework curator,
InvalidationServiceEndPointAdapter endPointAdapter,
ServiceEndPoint self,
MetricRegistry metricRegistry,
LifeCycleRegistry lifeCycleRegistry,
ExecutorService delayedInvalidationService) {
_curator = curator;
_endPointAdapter = endPointAdapter;
_self = self;
_metricRegistry = metricRegistry;
_delayedInvalidationService = delayedInvalidationService;
_delayedInvalidationQueue = new DelayQueue<>();
lifeCycleRegistry.manage(this);
}
项目:crail
文件:NameNodeService.java
public NameNodeService() throws IOException {
URI uri = URI.create(CrailConstants.NAMENODE_ADDRESS);
String query = uri.getRawQuery();
StringTokenizer tokenizer = new StringTokenizer(query, "&");
this.serviceId = Long.parseLong(tokenizer.nextToken().substring(3));
this.serviceSize = Long.parseLong(tokenizer.nextToken().substring(5));
this.sequenceId = new AtomicLong(serviceId);
this.blockStore = new BlockStore();
this.deleteQueue = new DelayQueue<AbstractNode>();
this.fileTree = new FileStore(this);
this.fileTable = new ConcurrentHashMap<Long, AbstractNode>();
this.gcServer = new GCServer(this, deleteQueue);
AbstractNode root = fileTree.getRoot();
fileTable.put(root.getFd(), root);
Thread gc = new Thread(gcServer);
gc.start();
}
项目:guava-libraries
文件:ArbitraryInstancesTest.java
public void testGet_concurrent() {
assertTrue(ArbitraryInstances.get(BlockingDeque.class).isEmpty());
assertTrue(ArbitraryInstances.get(BlockingQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(DelayQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(SynchronousQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(PriorityBlockingQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(ConcurrentMap.class).isEmpty());
assertTrue(ArbitraryInstances.get(ConcurrentNavigableMap.class).isEmpty());
ArbitraryInstances.get(Executor.class).execute(ArbitraryInstances.get(Runnable.class));
assertNotNull(ArbitraryInstances.get(ThreadFactory.class));
assertFreshInstanceReturned(
BlockingQueue.class, BlockingDeque.class, PriorityBlockingQueue.class,
DelayQueue.class, SynchronousQueue.class,
ConcurrentMap.class, ConcurrentNavigableMap.class,
AtomicReference.class, AtomicBoolean.class,
AtomicInteger.class, AtomicLong.class, AtomicDouble.class);
}
项目:groovy
文件:DefaultGroovyMethodsSupport.java
@SuppressWarnings("unchecked")
protected static <T> Queue<T> createSimilarQueue(Queue<T> orig) {
if (orig instanceof ArrayBlockingQueue) {
ArrayBlockingQueue queue = (ArrayBlockingQueue) orig;
return new ArrayBlockingQueue<T>(queue.size() + queue.remainingCapacity());
} else if (orig instanceof ArrayDeque) {
return new ArrayDeque<T>();
} else if (orig instanceof ConcurrentLinkedQueue) {
return new ConcurrentLinkedQueue<T>();
} else if (orig instanceof DelayQueue) {
return new DelayQueue();
} else if (orig instanceof LinkedBlockingDeque) {
return new LinkedBlockingDeque<T>();
} else if (orig instanceof LinkedBlockingQueue) {
return new LinkedBlockingQueue<T>();
} else if (orig instanceof PriorityBlockingQueue) {
return new PriorityBlockingQueue<T>();
} else if (orig instanceof PriorityQueue) {
return new PriorityQueue<T>(11, ((PriorityQueue) orig).comparator());
} else if (orig instanceof SynchronousQueue) {
return new SynchronousQueue<T>();
} else {
return new LinkedList<T>();
}
}
项目:java.deepclone
文件:UtilCollection.java
/**
*
* typeClone
*
* @param element
* @return
*/
public static <V, K, T> TypeCloneResult typeCloneQueue(final Queue<V> element) {
final TypeCloneResult result = new TypeCloneResult();
final Class clazz = element.getClass();
if (PriorityQueue.class.isAssignableFrom(clazz)) {
result.setTypeClone(TypeClone.PriorityQueue);
} else if (LinkedBlockingQueue.class.isAssignableFrom(clazz)) {
result.setTypeClone(TypeClone.LinkedBlockingQueue);
} else if (ArrayBlockingQueue.class.isAssignableFrom(clazz)) {
result.setTypeClone(TypeClone.ArrayBlockingQueue);
} else if (PriorityBlockingQueue.class.isAssignableFrom(clazz)) {
result.setTypeClone(TypeClone.PriorityBlockingQueue);
} else if (DelayQueue.class.isAssignableFrom(clazz)) {
result.setTypeClone(TypeClone.DelayQueue);
} else if (SynchronousQueue.class.isAssignableFrom(clazz)) {
result.setTypeClone(TypeClone.SynchronousQueue);
} else {
result.setTypeClone(TypeClone.NotCloneClass);
}
return result;
}
项目:guava
文件:ArbitraryInstancesTest.java
public void testGet_concurrent() {
assertTrue(ArbitraryInstances.get(BlockingDeque.class).isEmpty());
assertTrue(ArbitraryInstances.get(BlockingQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(DelayQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(SynchronousQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(PriorityBlockingQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(ConcurrentMap.class).isEmpty());
assertTrue(ArbitraryInstances.get(ConcurrentNavigableMap.class).isEmpty());
ArbitraryInstances.get(Executor.class).execute(ArbitraryInstances.get(Runnable.class));
assertNotNull(ArbitraryInstances.get(ThreadFactory.class));
assertFreshInstanceReturned(
BlockingQueue.class,
BlockingDeque.class,
PriorityBlockingQueue.class,
DelayQueue.class,
SynchronousQueue.class,
ConcurrentMap.class,
ConcurrentNavigableMap.class,
AtomicReference.class,
AtomicBoolean.class,
AtomicInteger.class,
AtomicLong.class,
AtomicDouble.class);
}
项目:guava
文件:ArbitraryInstancesTest.java
public void testGet_concurrent() {
assertTrue(ArbitraryInstances.get(BlockingDeque.class).isEmpty());
assertTrue(ArbitraryInstances.get(BlockingQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(DelayQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(SynchronousQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(PriorityBlockingQueue.class).isEmpty());
assertTrue(ArbitraryInstances.get(ConcurrentMap.class).isEmpty());
assertTrue(ArbitraryInstances.get(ConcurrentNavigableMap.class).isEmpty());
ArbitraryInstances.get(Executor.class).execute(ArbitraryInstances.get(Runnable.class));
assertNotNull(ArbitraryInstances.get(ThreadFactory.class));
assertFreshInstanceReturned(
BlockingQueue.class,
BlockingDeque.class,
PriorityBlockingQueue.class,
DelayQueue.class,
SynchronousQueue.class,
ConcurrentMap.class,
ConcurrentNavigableMap.class,
AtomicReference.class,
AtomicBoolean.class,
AtomicInteger.class,
AtomicLong.class,
AtomicDouble.class);
}
项目:spectator
文件:Scheduler.java
/**
* Execute the task and if reschedule another execution.
*
* @param queue
* Queue for the pool. This task will be added to the queue to schedule
* future executions.
* @param stats
* Handle to stats that should be updated based on the execution of the
* task.
*/
@SuppressWarnings("PMD.AvoidCatchingThrowable")
void runAndReschedule(DelayQueue<DelayedTask> queue, Stats stats) {
thread = Thread.currentThread();
boolean scheduleAgain = options.schedulingPolicy != Policy.RUN_ONCE;
try {
if (!isDone()) {
task.run();
}
} catch (Throwable t) {
// This catches Throwable because we cannot control the task and thus cannot
// ensure it is well behaved with respect to exceptions.
LOGGER.warn("task execution failed", t);
stats.incrementUncaught(t);
scheduleAgain = !options.stopOnFailure;
} finally {
thread = null;
if (scheduleAgain && !isDone()) {
updateNextExecutionTime(stats.skipped());
queue.put(this);
} else {
cancelled = true;
}
}
}
项目:lol4j
文件:ApiRequestManager.java
public void setRateLimit(int perTenSeconds, int perTenMinutes) {
if (!usingRateLimiter) {
perSecondsBucket = new DelayQueue<>();
for (int i = 0; i < perTenSeconds; i++) {
perSecondsBucket.put(new Token(TEN_SECONDS, true));
}
perMinutesBucket = new DelayQueue<>();
for (int i = 0; i < perTenMinutes; i++) {
perMinutesBucket.put(new Token(TEN_MINUTES, true));
}
usingRateLimiter = true;
}
else {
throw new IllegalStateException("Can't set rate limit after it has already been set");
}
}
项目:joynr
文件:MqttMessagingSkeleton.java
@Inject
// CHECKSTYLE IGNORE ParameterNumber FOR NEXT 2 LINES
public MqttMessagingSkeleton(@Named(MqttModule.PROPERTY_MQTT_GLOBAL_ADDRESS) MqttAddress ownAddress,
@Named(PROPERTY_BACKPRESSURE_REPEATED_MQTT_MESSAGE_IGNORE_PERIOD_MS) int repeatedMqttMessageIgnorePeriodMs,
@Named(PROPERTY_BACKPRESSURE_MAX_INCOMING_MQTT_MESSAGES_IN_QUEUE) int maxMqttMessagesInQueue,
@Named(PROPERTY_BACKPRESSURE_ENABLED) boolean backpressureEnabled,
MessageRouter messageRouter,
MqttClientFactory mqttClientFactory,
MqttTopicPrefixProvider mqttTopicPrefixProvider,
RawMessagingPreprocessor rawMessagingPreprocessor,
Set<JoynrMessageProcessor> messageProcessors) {
this.backpressureEnabled = backpressureEnabled;
this.ownAddress = ownAddress;
this.repeatedMqttMessageIgnorePeriodMs = repeatedMqttMessageIgnorePeriodMs;
this.maxMqttMessagesInQueue = maxMqttMessagesInQueue;
this.messageRouter = messageRouter;
this.mqttClientFactory = mqttClientFactory;
this.mqttTopicPrefixProvider = mqttTopicPrefixProvider;
this.rawMessagingPreprocessor = rawMessagingPreprocessor;
this.messageProcessors = messageProcessors;
this.processingMessages = new HashMap<>();
this.processedMessagesQueue = new DelayQueue<>();
}
项目:JavaCommon
文件:Exam.java
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
int studentNumber = 20;
DelayQueue<Student> students = new DelayQueue<Student>();
Random random = new Random();
for (int i = 0; i < studentNumber; i++) {
students.put(new Student("student" + (i + 1), 30 + random.nextInt(120)));
}
students.put(new Student("student",120));
Thread teacherThread = new Thread(new Teacher(students));
teacherThread.start();
}
项目:message-broker
文件:TaskExecutorService.java
/**
* Create a Task manager with a given number of threads to process the tasks.
*
* @param workerCount maximum number of threads spawned to process the tasks.
* @param idleTaskDelayMillis delay set for processing a task with IDLE
* {@link org.wso2.broker.core.task.Task.TaskHint}.
* @param threadFactory thread factory to be used for processing the tasks.
*/
public TaskExecutorService(int workerCount, long idleTaskDelayMillis, ThreadFactory threadFactory) {
taskExecutorPool = Executors.newFixedThreadPool(workerCount, threadFactory);
this.workerCount = workerCount;
taskProcessorQueue = new ArrayDeque<>(workerCount);
taskUpdateExecutorService = Executors.newSingleThreadExecutor(threadFactory);
taskExceptionHandler = new DefaultExceptionHandler();
taskHolderDelayQueue = new DelayQueue<>();
taskHolderRegistry = new ConcurrentHashMap<>();
this.idleTaskDelayMillis = idleTaskDelayMillis;
}
项目:hadoop
文件:NMSimulator.java
public void init(String nodeIdStr, int memory, int cores,
int dispatchTime, int heartBeatInterval, ResourceManager rm)
throws IOException, YarnException {
super.init(dispatchTime, dispatchTime + 1000000L * heartBeatInterval,
heartBeatInterval);
// create resource
String rackHostName[] = SLSUtils.getRackHostName(nodeIdStr);
this.node = NodeInfo.newNodeInfo(rackHostName[0], rackHostName[1],
BuilderUtils.newResource(memory, cores));
this.rm = rm;
// init data structures
completedContainerList =
Collections.synchronizedList(new ArrayList<ContainerId>());
releasedContainerList =
Collections.synchronizedList(new ArrayList<ContainerId>());
containerQueue = new DelayQueue<ContainerSimulator>();
amContainerList =
Collections.synchronizedList(new ArrayList<ContainerId>());
runningContainers =
new ConcurrentHashMap<ContainerId, ContainerSimulator>();
// register NM with RM
RegisterNodeManagerRequest req =
Records.newRecord(RegisterNodeManagerRequest.class);
req.setNodeId(node.getNodeID());
req.setResource(node.getTotalCapability());
req.setHttpPort(80);
RegisterNodeManagerResponse response = rm.getResourceTrackerService()
.registerNodeManager(req);
masterKey = response.getNMTokenMasterKey();
}
项目:openjdk-jdk10
文件:DrainToFails.java
void test(String[] args) throws Throwable {
testDelayQueue(new DelayQueue());
testDelayQueue(new ScheduledThreadPoolExecutor(1).getQueue());
testUnbounded(new LinkedBlockingQueue());
testUnbounded(new LinkedBlockingDeque());
testUnbounded(new PriorityBlockingQueue());
testBounded(new LinkedBlockingQueue(CAPACITY));
testBounded(new LinkedBlockingDeque(CAPACITY));
testBounded(new ArrayBlockingQueue(CAPACITY));
}
项目:openjdk-jdk10
文件:PollUnexpired.java
private static void realMain(String[] args) throws Throwable {
DelayQueue<Godot> q = new DelayQueue<>();
for (int i = 0; i < 3; i++) {
equal(q.size(), i);
equal(q.poll(), null);
equal(q.size(), i);
equal(q.poll(100, TimeUnit.MILLISECONDS), null);
equal(q.size(), i);
q.add(new Godot());
}
}
项目:openjdk-jdk10
文件:DelayQueueTest.java
public static Test suite() {
class Implementation implements CollectionImplementation {
public Class<?> klazz() { return DelayQueue.class; }
public Collection emptyCollection() { return new DelayQueue(); }
public Object makeElement(int i) { return new PDelay(i); }
public boolean isConcurrent() { return true; }
public boolean permitsNulls() { return false; }
}
return newTestSuite(DelayQueueTest.class,
new Generic().testSuite(),
CollectionTest.testSuite(new Implementation()));
}
项目:openjdk-jdk10
文件:DelayQueueTest.java
/**
* Returns a new queue of given size containing consecutive
* PDelays 0 ... n - 1.
*/
private static DelayQueue<PDelay> populatedQueue(int n) {
DelayQueue<PDelay> q = new DelayQueue<>();
assertTrue(q.isEmpty());
for (int i = n - 1; i >= 0; i -= 2)
assertTrue(q.offer(new PDelay(i)));
for (int i = (n & 1); i < n; i += 2)
assertTrue(q.offer(new PDelay(i)));
assertFalse(q.isEmpty());
assertEquals(Integer.MAX_VALUE, q.remainingCapacity());
assertEquals(n, q.size());
assertEquals(new PDelay(0), q.peek());
return q;
}
项目:openjdk-jdk10
文件:DelayQueueTest.java
/**
* Initializing from null Collection throws NPE
*/
public void testConstructor3() {
try {
new DelayQueue(null);
shouldThrow();
} catch (NullPointerException success) {}
}
项目:openjdk-jdk10
文件:DelayQueueTest.java
/**
* Initializing from Collection of null elements throws NPE
*/
public void testConstructor4() {
try {
new DelayQueue(Arrays.asList(new PDelay[SIZE]));
shouldThrow();
} catch (NullPointerException success) {}
}
项目:openjdk-jdk10
文件:DelayQueueTest.java
/**
* Initializing from Collection with some null elements throws NPE
*/
public void testConstructor5() {
PDelay[] a = new PDelay[SIZE];
for (int i = 0; i < SIZE - 1; ++i)
a[i] = new PDelay(i);
try {
new DelayQueue(Arrays.asList(a));
shouldThrow();
} catch (NullPointerException success) {}
}
项目:openjdk-jdk10
文件:DelayQueueTest.java
/**
* Queue contains all elements of collection used to initialize
*/
public void testConstructor6() {
PDelay[] ints = new PDelay[SIZE];
for (int i = 0; i < SIZE; ++i)
ints[i] = new PDelay(i);
DelayQueue q = new DelayQueue(Arrays.asList(ints));
for (int i = 0; i < SIZE; ++i)
assertEquals(ints[i], q.poll());
}
项目:openjdk-jdk10
文件:DelayQueueTest.java
/**
* isEmpty is true before add, false after
*/
public void testEmpty() {
DelayQueue q = new DelayQueue();
assertTrue(q.isEmpty());
assertEquals(Integer.MAX_VALUE, q.remainingCapacity());
q.add(new PDelay(1));
assertFalse(q.isEmpty());
q.add(new PDelay(2));
q.remove();
q.remove();
assertTrue(q.isEmpty());
}
项目:openjdk-jdk10
文件:DelayQueueTest.java
/**
* add succeeds
*/
public void testAdd() {
DelayQueue q = new DelayQueue();
for (int i = 0; i < SIZE; ++i) {
assertEquals(i, q.size());
assertTrue(q.add(new PDelay(i)));
}
}