Java 类java.util.concurrent.ArrayBlockingQueue 实例源码
项目:guava-mock
文件:ExecutionListBenchmark.java
@BeforeExperiment void setUp() throws Exception {
executorService = new ThreadPoolExecutor(NUM_THREADS,
NUM_THREADS,
Long.MAX_VALUE,
TimeUnit.SECONDS,
new ArrayBlockingQueue<Runnable>(1000));
executorService.prestartAllCoreThreads();
final AtomicInteger integer = new AtomicInteger();
// Execute a bunch of tasks to ensure that our threads are allocated and hot
for (int i = 0; i < NUM_THREADS * 10; i++) {
@SuppressWarnings("unused") // go/futurereturn-lsc
Future<?> possiblyIgnoredError =
executorService.submit(
new Runnable() {
@Override
public void run() {
integer.getAndIncrement();
}
});
}
}
项目:jdk8u-jdk
文件:CheckedQueue.java
/**
* This test tests the CheckedQueue.offer method.
*/
@Test
public void testOffer() {
ArrayBlockingQueue<String> abq = new ArrayBlockingQueue(1);
Queue q = Collections.checkedQueue(abq, String.class);
try {
q.offer(null);
fail("should throw NullPointerException.");
} catch (NullPointerException npe) {
// Do nothing
}
try {
q.offer(0);
fail("should throw ClassCastException.");
} catch (ClassCastException cce) {
// Do nothing
}
assertTrue(q.offer("0"), "queue should have room");
// no room at the inn!
assertFalse(q.offer("1"), "queue should be full");
}
项目:openjdk-jdk10
文件:SingleProducerMultipleConsumerLoops.java
public static void main(String[] args) throws Exception {
final int maxConsumers = (args.length > 0)
? Integer.parseInt(args[0])
: 5;
pool = Executors.newCachedThreadPool();
for (int i = 1; i <= maxConsumers; i += (i+1) >>> 1) {
// Adjust iterations to limit typical single runs to <= 10 ms;
// Notably, fair queues get fewer iters.
// Unbounded queues can legitimately OOME if iterations
// high enough, but we have a sufficiently low limit here.
run(new ArrayBlockingQueue<Integer>(100), i, 1000);
run(new LinkedBlockingQueue<Integer>(100), i, 1000);
run(new LinkedBlockingDeque<Integer>(100), i, 1000);
run(new LinkedTransferQueue<Integer>(), i, 700);
run(new PriorityBlockingQueue<Integer>(), i, 1000);
run(new SynchronousQueue<Integer>(), i, 300);
run(new SynchronousQueue<Integer>(true), i, 200);
run(new ArrayBlockingQueue<Integer>(100, true), i, 100);
}
pool.shutdown();
if (! pool.awaitTermination(LONG_DELAY_MS, MILLISECONDS))
throw new Error();
pool = null;
}
项目:openjdk-jdk10
文件:ArrayBlockingQueueTest.java
/**
* timed poll retrieves elements across Executor threads
*/
public void testPollInExecutor() {
final ArrayBlockingQueue q = new ArrayBlockingQueue(2);
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();
assertSame(one, q.poll(LONG_DELAY_MS, MILLISECONDS));
checkEmpty(q);
}});
executor.execute(new CheckedRunnable() {
public void realRun() throws InterruptedException {
threadsStarted.await();
q.put(one);
}});
}
}
项目:AndroidSdrRtlTuner
文件:Demodulator.java
/**
* Constructor. Creates a new demodulator block reading its samples from the given input queue and
* returning the buffers to the given output queue. Expects input samples to be at baseband (mixing
* is done by the scheduler)
*
* @param inputQueue Queue that delivers received baseband signals
* @param outputQueue Queue to return used buffers from the inputQueue
* @param packetSize Size of the packets in the input queue
*/
public Demodulator (ArrayBlockingQueue<SamplePacket> inputQueue, ArrayBlockingQueue<SamplePacket> outputQueue, int packetSize) {
// Create internal sample buffers:
// Note that we create the buffers for the case that there is no downsampling necessary
// All other cases with input decimation > 1 are also possible because they only need
// smaller buffers.
this.quadratureSamples = new SamplePacket(packetSize);
// Create Audio Sink
this.audioSink = new AudioSink(packetSize, AUDIO_RATE);
// Create Decimator block
// Note that the decimator directly reads from the inputQueue and also returns processed packets to the
// output queue.
this.decimator = new Decimator(QUADRATURE_RATE[demodulationMode], packetSize, inputQueue, outputQueue);
}
项目:https-github.com-apache-zookeeper
文件:QuorumCnxManager.java
/**
* Inserts an element in the specified queue. If the Queue is full, this
* method removes an element from the head of the Queue and then inserts
* the element at the tail. It can happen that the an element is removed
* by another thread in {@link SendWorker#processMessage() processMessage}
* method before this method attempts to remove an element from the queue.
* This will cause {@link ArrayBlockingQueue#remove() remove} to throw an
* exception, which is safe to ignore.
*
* Unlike {@link #addToRecvQueue(Message) addToRecvQueue} this method does
* not need to be synchronized since there is only one thread that inserts
* an element in the queue and another thread that reads from the queue.
*
* @param queue
* Reference to the Queue
* @param buffer
* Reference to the buffer to be inserted in the queue
*/
private void addToSendQueue(ArrayBlockingQueue<ByteBuffer> queue,
ByteBuffer buffer) {
if (queue.remainingCapacity() == 0) {
try {
queue.remove();
} catch (NoSuchElementException ne) {
// element could be removed by poll()
LOG.debug("Trying to remove from an empty " +
"Queue. Ignoring exception " + ne);
}
}
try {
queue.add(buffer);
} catch (IllegalStateException ie) {
// This should never happen
LOG.error("Unable to insert an element in the queue " + ie);
}
}
项目:AndroidSdrRtlTuner
文件:Decimator.java
/**
* Constructor. Will create a new Decimator block.
*
* @param outputSampleRate // sample rate to which the incoming samples should be decimated
* @param packetSize // packet size of the incoming sample packets
* @param inputQueue // queue that delivers incoming sample packets
* @param inputReturnQueue // queue to return used input sample packets
*/
public Decimator (int outputSampleRate, int packetSize, ArrayBlockingQueue<SamplePacket> inputQueue,
ArrayBlockingQueue<SamplePacket> inputReturnQueue) {
this.outputSampleRate = outputSampleRate;
this.packetSize = packetSize;
this.inputQueue = inputQueue;
this.inputReturnQueue = inputReturnQueue;
// Create output queues:
this.outputQueue = new ArrayBlockingQueue<SamplePacket>(OUTPUT_QUEUE_SIZE);
this.outputReturnQueue = new ArrayBlockingQueue<SamplePacket>(OUTPUT_QUEUE_SIZE);
for (int i = 0; i < OUTPUT_QUEUE_SIZE; i++)
outputReturnQueue.offer(new SamplePacket(packetSize));
// Create half band filters for downsampling:
this.inputFilter1 = new HalfBandLowPassFilter(8);
this.inputFilter2 = new HalfBandLowPassFilter(8);
this.inputFilter3 = new HalfBandLowPassFilter(8);
// Create local buffers:
this.tmpDownsampledSamples = new SamplePacket(packetSize);
}
项目:s-store
文件:JDBCSQLXML.java
/**
* @return that may be used to perform processesing asynchronously.
*/
protected static ExecutorService getExecutorService() {
if (JDBCSQLXML.executorService == null) {
int corePoolSize = 1;
int maximumPoolSize = 10;
long keepAliveTime = 1;
TimeUnit unit = TimeUnit.SECONDS;
JDBCSQLXML.workQueue = new ArrayBlockingQueue<Runnable>(10);
JDBCSQLXML.executorService = new ThreadPoolExecutor(corePoolSize,
maximumPoolSize, keepAliveTime, unit, workQueue);
}
return executorService;
}
项目:openjdk-jdk10
文件:AbstractExecutorServiceTest.java
/**
* submit(callable).get() throws InterruptedException if interrupted
*/
public void testInterruptedSubmit() throws InterruptedException {
final CountDownLatch submitted = new CountDownLatch(1);
final CountDownLatch quittingTime = new CountDownLatch(1);
final Callable<Void> awaiter = new CheckedCallable<Void>() {
public Void realCall() throws InterruptedException {
assertTrue(quittingTime.await(2*LONG_DELAY_MS, MILLISECONDS));
return null;
}};
final ExecutorService p
= new ThreadPoolExecutor(1,1,60, TimeUnit.SECONDS,
new ArrayBlockingQueue<Runnable>(10));
try (PoolCleaner cleaner = cleaner(p, quittingTime)) {
Thread t = newStartedThread(new CheckedInterruptedRunnable() {
public void realRun() throws Exception {
Future<Void> future = p.submit(awaiter);
submitted.countDown();
future.get();
}});
await(submitted);
t.interrupt();
awaitTermination(t);
}
}
项目:openjdk-jdk10
文件:ThreadPoolExecutorSubclassTest.java
/**
* timed invokeAny(c) returns result of some task
*/
public void testTimedInvokeAny5() throws Exception {
final ExecutorService e =
new CustomTPE(2, 2,
LONG_DELAY_MS, MILLISECONDS,
new ArrayBlockingQueue<Runnable>(10));
try (PoolCleaner cleaner = cleaner(e)) {
long startTime = System.nanoTime();
List<Callable<String>> l = new ArrayList<>();
l.add(new StringTask());
l.add(new StringTask());
String result = e.invokeAny(l, LONG_DELAY_MS, MILLISECONDS);
assertSame(TEST_STRING, result);
assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS);
}
}
项目:openjdk-jdk10
文件:ThreadPoolExecutorTest.java
/**
* execute allows the same task to be submitted multiple times, even
* if rejected
*/
public void testRejectedRecycledTask() throws InterruptedException {
final int nTasks = 1000;
final CountDownLatch done = new CountDownLatch(nTasks);
final Runnable recycledTask = new Runnable() {
public void run() {
done.countDown();
}};
final ThreadPoolExecutor p =
new ThreadPoolExecutor(1, 30,
60, SECONDS,
new ArrayBlockingQueue(30));
try (PoolCleaner cleaner = cleaner(p)) {
for (int i = 0; i < nTasks; ++i) {
for (;;) {
try {
p.execute(recycledTask);
break;
}
catch (RejectedExecutionException ignore) {}
}
}
// enough time to run all tasks
await(done, nTasks * SHORT_DELAY_MS);
}
}
项目:tipi-engine
文件:CommandConsumer.java
@Override
public void start() throws Exception {
LOGGER.info("Start called");
Assert.isTrue(stopped);
stopped = false;
queue = new ArrayBlockingQueue<CommandWrapper>(100000);
// Thread de consommation
consumationThread = new Thread(this);
consumationThread.setName("TiPi-Consumer");
consumationThread.setPriority(Thread.NORM_PRIORITY + 1);
LOGGER.info("Démarrage du Thread de CommandConsumer ...");
consumationThread.start();
if (resumeTipiAtBoot) {
// Reveille les taches tout de suite
LOGGER.info("Cold restart TiPi ...");
addCommand(new ColdRestartCommand());
} else {
LOGGER.info("Pas de Cold restart de TiPi");
}
}
项目:incubator-ratis
文件:LeaderState.java
LeaderState(RaftServerImpl server, RaftProperties properties) {
this.server = server;
stagingCatchupGap = RaftServerConfigKeys.stagingCatchupGap(properties);
syncInterval = RaftServerConfigKeys.Rpc.sleepTime(properties);
final ServerState state = server.getState();
this.raftLog = state.getLog();
this.currentTerm = state.getCurrentTerm();
eventQ = new ArrayBlockingQueue<>(4096);
processor = new EventProcessor();
pendingRequests = new PendingRequests(server);
final RaftConfiguration conf = server.getRaftConf();
Collection<RaftPeer> others = conf.getOtherPeers(state.getSelfId());
final Timestamp t = new Timestamp().addTimeMs(-server.getMaxTimeoutMs());
placeHolderIndex = raftLog.getNextIndex();
senders = new SenderList(others.stream().map(
p -> server.newLogAppender(this, p, t, placeHolderIndex, true))
.toArray(LogAppender[]::new));
voterLists = divideFollowers(conf);
}
项目:openjdk-jdk10
文件:ThreadPoolExecutorSubclassTest.java
/**
* timed invokeAny(c) throws NPE if c has null elements
*/
public void testTimedInvokeAny3() throws Exception {
CountDownLatch latch = new CountDownLatch(1);
final ExecutorService e =
new CustomTPE(2, 2,
LONG_DELAY_MS, MILLISECONDS,
new ArrayBlockingQueue<Runnable>(10));
try (PoolCleaner cleaner = cleaner(e)) {
List<Callable<String>> l = new ArrayList<>();
l.add(latchAwaitingStringTask(latch));
l.add(null);
try {
e.invokeAny(l, randomTimeout(), MILLISECONDS);
shouldThrow();
} catch (NullPointerException success) {}
latch.countDown();
}
}
项目:iStudent
文件:RPCClient.java
public String call(String message) throws IOException, InterruptedException {
String corrId = UUID.randomUUID().toString();
AMQP.BasicProperties props = new AMQP.BasicProperties
.Builder()
.correlationId(corrId)
.replyTo(replyQueueName)
.build();
channel.basicPublish("", requestQueueName, props, message.getBytes("UTF-8"));
final BlockingQueue<String> response = new ArrayBlockingQueue<String>(1);
channel.basicConsume(replyQueueName, true, new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
if (properties.getCorrelationId().equals(corrId)) {
response.offer(new String(body, "UTF-8"));
}
}
});
return response.take();
}
项目:graphium
文件:TestExtendSegmentWithXInfo.java
/**
* @param graphName
* @param version
* @throws WaySegmentSerializationException
* @throws GraphNotExistsException
* @throws InterruptedException
*/
private void readSegments(String graphName, String version) throws GraphNotExistsException, WaySegmentSerializationException, InterruptedException {
BlockingQueue<IWaySegment> segmentsQueue = new ArrayBlockingQueue<IWaySegment>(10);
readDao.readStreetSegments(segmentsQueue, graphName, version);
log.info("Stored segments:");
while (!segmentsQueue.isEmpty()) {
IWaySegment seg = segmentsQueue.poll(10, TimeUnit.MILLISECONDS);
log.info(seg.toString());
log.info("XInfo:");
if (seg.getXInfo() == null || seg.getXInfo().isEmpty()) {
log.info("empty");
} else {
for (IXInfo xinfo : seg.getXInfo()) {
log.info(xinfo.toString());
}
}
}
}
项目:graphium
文件:BaseSegmentXInfoService.java
private void streamBaseXInfos(String graph, String version, InputStream inputStream, boolean isSegmentXInfo)
throws XInfoNotSupportedException, GraphImportException, GraphStorageException, GraphNotExistsException {
//First checkk if already another import is running. The singleton serverStatus has to be injected therefore
if (!serverStatus.registerImport()) {
throw new GraphImportException("Sorry, system is busy, a graph import is currently executed");
}
IBaseSegmentProducer<IBaseSegment> producer = null;
try {
BlockingQueue<IBaseSegment> segmentsQueue;
segmentsQueue = new ArrayBlockingQueue<>(queueSize);
producer = new BaseSegmentProducerImpl<>(inputFormat, inputStream, segmentsQueue);
Thread producerThread = new Thread(producer, "basesegment-xinfo-parser-thread");
producerThread.start();
List<IBaseSegment> segments = new ArrayList<>();
while (producerThread.isAlive() || !segmentsQueue.isEmpty()) {
if (!segmentsQueue.isEmpty()) {
segments.add(segmentsQueue.poll());
}
if (segments.size() >= this.batchSize) {
this.writeSegments(segments,graph,version,isSegmentXInfo);
segments.clear();
}
}
this.writeSegments(segments,graph,version,isSegmentXInfo);
} finally {
serverStatus.unregisterImport();
if (producer != null && producer.getException() != null) {
throw new GraphImportException("Graph could not be imported",producer.getException());
}
}
}
项目:openjdk-jdk10
文件:ThreadPoolExecutorTest.java
/**
* executor using DiscardOldestPolicy drops oldest task if saturated.
*/
public void testSaturatedExecute_DiscardOldestPolicy() {
final CountDownLatch done = new CountDownLatch(1);
LatchAwaiter r1 = awaiter(done);
LatchAwaiter r2 = awaiter(done);
LatchAwaiter r3 = awaiter(done);
final ThreadPoolExecutor p =
new ThreadPoolExecutor(1, 1,
LONG_DELAY_MS, MILLISECONDS,
new ArrayBlockingQueue<Runnable>(1),
new DiscardOldestPolicy());
try (PoolCleaner cleaner = cleaner(p, done)) {
assertEquals(LatchAwaiter.NEW, r1.state);
assertEquals(LatchAwaiter.NEW, r2.state);
assertEquals(LatchAwaiter.NEW, r3.state);
p.execute(r1);
p.execute(r2);
assertTrue(p.getQueue().contains(r2));
p.execute(r3);
assertFalse(p.getQueue().contains(r2));
assertTrue(p.getQueue().contains(r3));
}
assertEquals(LatchAwaiter.DONE, r1.state);
assertEquals(LatchAwaiter.NEW, r2.state);
assertEquals(LatchAwaiter.DONE, r3.state);
}
项目:openjdk-jdk10
文件:ThreadPoolExecutorSubclassTest.java
/**
* get of element of invokeAll(c) throws exception on failed task
*/
public void testTimedInvokeAll4() throws Exception {
final ExecutorService e =
new CustomTPE(2, 2,
LONG_DELAY_MS, MILLISECONDS,
new ArrayBlockingQueue<Runnable>(10));
try (PoolCleaner cleaner = cleaner(e)) {
List<Callable<String>> l = new ArrayList<>();
l.add(new NPETask());
List<Future<String>> futures =
e.invokeAll(l, LONG_DELAY_MS, MILLISECONDS);
assertEquals(1, futures.size());
try {
futures.get(0).get();
shouldThrow();
} catch (ExecutionException success) {
assertTrue(success.getCause() instanceof NullPointerException);
}
}
}
项目:athena
文件:LsaQueueConsumerTest.java
/**
* Tests run() method.
*/
@Test
public void testRun1() throws Exception {
blockingQueue = new ArrayBlockingQueue(5);
channel = EasyMock.createMock(Channel.class);
ospfArea = new OspfAreaImpl();
lsaWrapper = new LsaWrapperImpl();
routerLsa = new RouterLsa();
routerLsa.setLsType(1);
lsaWrapper.addLsa(OspfLsaType.ROUTER, routerLsa);
ospfInterface = new OspfInterfaceImpl();
ospfInterface.setState(OspfInterfaceState.DR);
lsaWrapper.setOspfInterface(ospfInterface);
lsaWrapper.setIsSelfOriginated(true);
lsaHeader = new LsaHeader();
lsaHeader.setLsType(1);
lsaWrapper.setLsaHeader(lsaHeader);
lsaWrapper.setLsaProcessing("refreshLsa");
lsaWrapper.setLsdbAge(new LsdbAgeImpl(ospfArea));
blockingQueue.add(lsaWrapper);
lsaQueueConsumer = new LsaQueueConsumer(blockingQueue, channel, ospfArea);
lsaQueueConsumer.run();
assertThat(lsaQueueConsumer, is(notNullValue()));
}
项目:openjdk-jdk10
文件:ThreadPoolExecutorSubclassTest.java
/**
* get of element of invokeAll(c) throws exception on failed task
*/
public void testInvokeAll4() throws Exception {
final ExecutorService e =
new CustomTPE(2, 2,
LONG_DELAY_MS, MILLISECONDS,
new ArrayBlockingQueue<Runnable>(10));
try (PoolCleaner cleaner = cleaner(e)) {
List<Callable<String>> l = new ArrayList<>();
l.add(new NPETask());
List<Future<String>> futures = e.invokeAll(l);
assertEquals(1, futures.size());
try {
futures.get(0).get();
shouldThrow();
} catch (ExecutionException success) {
assertTrue(success.getCause() instanceof NullPointerException);
}
}
}
项目:jdk8u-jdk
文件:RemovePollRace.java
Collection<Queue<Boolean>> concurrentQueues() {
List<Queue<Boolean>> queues = new ArrayList<Queue<Boolean>>();
queues.add(new ConcurrentLinkedDeque<Boolean>());
queues.add(new ConcurrentLinkedQueue<Boolean>());
queues.add(new ArrayBlockingQueue<Boolean>(count, false));
queues.add(new ArrayBlockingQueue<Boolean>(count, true));
queues.add(new LinkedBlockingQueue<Boolean>());
queues.add(new LinkedBlockingDeque<Boolean>());
queues.add(new LinkedTransferQueue<Boolean>());
// Following additional implementations are available from:
// http://gee.cs.oswego.edu/dl/concurrency-interest/index.html
// queues.add(new SynchronizedLinkedListQueue<Boolean>());
// Avoid "first fast, second slow" benchmark effect.
Collections.shuffle(queues);
return queues;
}
项目:openjdk-jdk10
文件:ThreadPoolExecutorTest.java
/**
* isTerminating is not true when running or when terminated
*/
public void testIsTerminating() throws InterruptedException {
final ThreadPoolExecutor p =
new ThreadPoolExecutor(1, 1,
LONG_DELAY_MS, MILLISECONDS,
new ArrayBlockingQueue<Runnable>(10));
try (PoolCleaner cleaner = cleaner(p)) {
final CountDownLatch threadStarted = new CountDownLatch(1);
final CountDownLatch done = new CountDownLatch(1);
assertFalse(p.isTerminating());
p.execute(new CheckedRunnable() {
public void realRun() throws InterruptedException {
assertFalse(p.isTerminating());
threadStarted.countDown();
await(done);
}});
await(threadStarted);
assertFalse(p.isTerminating());
done.countDown();
try { p.shutdown(); } catch (SecurityException ok) { return; }
assertTrue(p.awaitTermination(LONG_DELAY_MS, MILLISECONDS));
assertTrue(p.isTerminated());
assertFalse(p.isTerminating());
}
}
项目:ats-framework
文件:AbstractDbAppender.java
@Override
public void activateOptions() {
// check whether the configuration is valid first
try {
appenderConfig.validate();
} catch (InvalidAppenderConfigurationException iace) {
throw new DbAppenederException(iace);
}
// set the threshold if there is such
appenderConfig.setLoggingThreshold(getThreshold());
// the logging queue
queue = new ArrayBlockingQueue<LogEventRequest>(getMaxNumberLogEvents());
}
项目:openjdk-jdk10
文件:WhiteBox.java
public void garbageCollectionOfUnreachableIterators() {
boolean fair = rnd.nextBoolean();
int capacity = rnd.nextInt(1, 10);
ArrayBlockingQueue q = new ArrayBlockingQueue(capacity, fair);
randomizePutIndex(q);
List<Iterator> its = new ArrayList<>();
for (int i = 0; i < capacity; i++) q.add(i);
for (int i = 0; i < capacity; i++) its.add(q.iterator());
assertEquals(attachedIterators(q), its);
its = null;
gcAwait(() -> {
List<Iterator> trackedIterators = trackedIterators(q);
assertEquals(trackedIterators.size(), capacity);
for (Iterator x : trackedIterators)
if (x != null) return false;
return true;
});
Iterator it = q.iterator(); //
assertEquals(trackedIterators(q), Collections.singletonList(it));
}
项目:jaer
文件:Steadicam.java
private void pushEvent(ApsDvsEvent ev) {
if(imuLagMs==0){
heldEvent=ev;
return;
}
ApsDvsEvent ne = new ApsDvsEvent();
ne.copyFrom(ev);
if (!eventQueue.offer(ne)) {
// increase queue size
ArrayBlockingQueue<ApsDvsEvent> newQueue = new ArrayBlockingQueue<ApsDvsEvent>(eventQueue.size() * 2);
log.info("increased event queue to " + newQueue.remainingCapacity() + " events");
newQueue.addAll(eventQueue);
eventQueue = newQueue;
eventQueue.offer(ne);
};
}
项目:picocli
文件:CommandLineTest.java
@Test
public void testAnyExceptionWrappedInParameterException() {
class App {
@Option(names = "-queue", type = String.class, split = ",")
ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<String>(2);
}
try {
CommandLine.populateCommand(new App(), "-queue a,b,c".split(" "));
fail("ParameterException expected");
} catch (ParameterException ex) {
assertEquals("IllegalStateException: Queue full while processing argument at or before arg[1] 'a,b,c' in [-queue, a,b,c]: java.lang.IllegalStateException: Queue full", ex.getMessage());
}
}
项目:firebase-admin-java
文件:TaskExecutorsTest.java
@Test
public void testDirect() throws InterruptedException {
final ArrayBlockingQueue<Thread> sync = new ArrayBlockingQueue<>(1);
TaskExecutors.DIRECT.execute(
new Runnable() {
@Override
public void run() {
sync.add(Thread.currentThread());
}
});
Thread actual = sync.poll(TIMEOUT_MS, TimeUnit.MILLISECONDS);
Assert.assertEquals(Thread.currentThread(), actual);
}
项目:fdt
文件:FDTServer.java
public FDTServer(int port) throws Exception {
hasToRun = new AtomicBoolean(true);
// We are not very happy to welcome new clients ... so the priority will be lower
executor = Utils.getStandardExecService("[ Acceptable ServersThreadPool ] ",
5,
10,
new ArrayBlockingQueue<Runnable>(65500),
Thread.NORM_PRIORITY - 2);
ssc = ServerSocketChannel.open();
ssc.configureBlocking(false);
ss = ssc.socket();
String listenIP = config.getListenAddress();
if (listenIP == null) {
ss.bind(new InetSocketAddress(port));
}
else
{
ss.bind(new InetSocketAddress(InetAddress.getByName(listenIP), port));
}
sel = Selector.open();
ssc.register(sel, SelectionKey.OP_ACCEPT);
if (config.isGSIModeEnabled()) {
FDTGSIServer gsiServer = new FDTGSIServer(config.getGSIPort());
gsiServer.start();
logger.log(Level.INFO, "FDT started in GSI mode on port: " + config.getGSIPort());
}
// Monitoring & Nice Prnting
final ScheduledExecutorService monitoringService = Utils.getMonitoringExecService();
monitoringService.scheduleWithFixedDelay(new FDTServerMonitorTask(), 10, 10, TimeUnit.SECONDS);
// in SSH mode this is a ACK message for the client to inform it that the server started ok
// (the server stdout is piped to client through the SSH channel)
System.out.println("READY");
}
项目:openjdk-jdk10
文件:ArrayBlockingQueueTest.java
/**
* containsAll(c) is true when c contains a subset of elements
*/
public void testContainsAll() {
ArrayBlockingQueue q = populatedQueue(SIZE);
ArrayBlockingQueue p = new ArrayBlockingQueue(SIZE);
for (int i = 0; i < SIZE; ++i) {
assertTrue(q.containsAll(p));
assertFalse(p.containsAll(q));
p.add(new Integer(i));
}
assertTrue(p.containsAll(q));
}
项目:hygene
文件:ThrottledExecutor.java
/**
* Constructs a new {@link ThrottledExecutor}.
*
* @param timeout the minimal time between each execution in milliseconds
*/
public ThrottledExecutor(final int timeout) {
if (timeout < 0) {
throw new IllegalArgumentException("The timeout must be a positive integer.");
}
this.executor = getExitingExecutorService(new ThreadPoolExecutor(
THREAD_COUNT, THREAD_COUNT, 0L, TimeUnit.MILLISECONDS,
new ArrayBlockingQueue<>(2, true),
new DiscardNewestPolicy()));
}
项目:otus_java_2017_10
文件:QueueConnectionPool.java
public QueueConnectionPool(String url, String login, String pass, String driver, int initConnections) {
try {
Class.forName(driver);
} catch (Exception e) {
e.printStackTrace();
}
this.url = url;
this.login = login;
this.pass = pass;
pool = new ArrayBlockingQueue<PoolConnection>(16);
for (int i = 0; i < initConnections; i++) {
pool.add(getConnection());
}
}
项目:fdt
文件:FDT.java
private void waitForTask() throws Exception {
if (!DirectByteBufferPool.initInstance(config.getByteBufferSize(), Config.getMaxTakePollIter())) {
// this is really wrong ... It cannot be already initialized
throw new FDTProcolException("The buffer pool cannot be already initialized");
}
ExecutorService executor = null;
ServerSocketChannel ssc = null;
ServerSocket ss = null;
Selector sel = null;
try {
executor = Utils.getStandardExecService("[ Acceptable ServersThreadPool ] ",
2,
10,
new ArrayBlockingQueue<Runnable>(65500),
Thread.NORM_PRIORITY - 2);
ssc = ServerSocketChannel.open();
ssc.configureBlocking(false);
ss = ssc.socket();
ss.bind(new InetSocketAddress(config.getPort()));
sel = Selector.open();
ssc.register(sel, SelectionKey.OP_ACCEPT);
System.out.println("READY");
Utils.waitAndWork(executor, ss, sel, config);
} finally {
logger.log(Level.INFO, "[FDT] [ waitForTask ] main loop FINISHED!");
// close all the stuff
Utils.closeIgnoringExceptions(ssc);
Utils.closeIgnoringExceptions(sel);
Utils.closeIgnoringExceptions(ss);
if (executor != null) {
executor.shutdown();
}
}
}
项目:openjdk-jdk10
文件:WhiteBox.java
WhiteBox() throws ReflectiveOperationException {
Class<?> qClass = ArrayBlockingQueue.class;
Class<?> itrClass = Class.forName(qClass.getName() + "$Itr");
Class<?> itrsClass = Class.forName(qClass.getName() + "$Itrs");
Class<?> nodeClass = Class.forName(itrsClass.getName() + "$Node");
ITRS = findVarHandle(qClass, "itrs", itrsClass);
ITEMS = findVarHandle(qClass, "items", Object[].class);
TAKEINDEX = findVarHandle(qClass, "takeIndex", int.class);
PUTINDEX = findVarHandle(qClass, "putIndex", int.class);
COUNT = findVarHandle(qClass, "count", int.class);
HEAD = findVarHandle(itrsClass, "head", nodeClass);
NEXT = findVarHandle(nodeClass, "next", nodeClass);
PREVTAKEINDEX = findVarHandle(itrClass, "prevTakeIndex", int.class);
}
项目:openjdk-jdk10
文件:ThreadPoolExecutorTest.java
/**
* setMaximumPoolSize(int) throws IllegalArgumentException if
* given a value less the core pool size
*/
public void testMaximumPoolSizeIllegalArgumentException() {
final ThreadPoolExecutor p =
new ThreadPoolExecutor(2, 3,
LONG_DELAY_MS, MILLISECONDS,
new ArrayBlockingQueue<Runnable>(10));
try (PoolCleaner cleaner = cleaner(p)) {
try {
p.setMaximumPoolSize(1);
shouldThrow();
} catch (IllegalArgumentException success) {}
}
}
项目:openjdk-jdk10
文件:ThreadPoolExecutorSubclassTest.java
/**
* allowsCoreThreadTimeOut is by default false.
*/
public void testAllowsCoreThreadTimeOut() {
final ThreadPoolExecutor p =
new CustomTPE(2, 2,
1000, MILLISECONDS,
new ArrayBlockingQueue<Runnable>(10));
try (PoolCleaner cleaner = cleaner(p)) {
assertFalse(p.allowsCoreThreadTimeOut());
}
}
项目:jaer
文件:ITDFilter.java
public void setItdEventQueueSize(int itdEventQueueSize) {
getPrefs().putInt("ITDFilter.itdEventQueueSize", itdEventQueueSize);
getSupport().firePropertyChange("itdEventQueueSize", this.itdEventQueueSize, itdEventQueueSize);
this.itdEventQueueSize = itdEventQueueSize;
if (sendITDsToOtherThread) {
ITDEventQueue = new ArrayBlockingQueue(itdEventQueueSize);
}
}
项目:elastic-apm-java-agent-poc
文件:ApmAgent.java
public ApmAgent start () {
logger.info ("Starting ES APM agent");
initApmInfo();
apmApiService = createApiClient (RetrofitApmApiService.class);
errorsQueue = new ArrayBlockingQueue<> (getQueueCapacity (), fairQueue);
transactionsQueue = new ArrayBlockingQueue<> (getQueueCapacity (), fairQueue);
// init senders
errorsSender = startQueue (new ErrorsDataPump (this, errorsQueue));
transactionsSender = startQueue (new TransactionsDataPump (this, transactionsQueue));
return this;
}
项目:openjdk-jdk10
文件:WhiteBox.java
public void clear_willClearItrs() {
boolean fair = rnd.nextBoolean();
int capacity = rnd.nextInt(2, 10);
ArrayBlockingQueue q = new ArrayBlockingQueue(capacity, fair);
randomizePutIndex(q);
List<Iterator> its = new ArrayList<>();
for (int i = 0; i < capacity; i++)
assertTrue(q.add(i));
assertNull(itrs(q));
for (int i = 0; i < capacity; i++) {
its.add(q.iterator());
assertEquals(trackedIterators(q), its);
q.poll();
q.add(capacity + i);
}
q.clear();
assertNull(itrs(q));
int j = 0;
for (Iterator it : its) {
assertTrue(isDetached(it));
if (rnd.nextBoolean()) assertTrue(it.hasNext());
if (rnd.nextBoolean()) {
assertEquals(it.next(), j);
assertIteratorExhausted(it);
}
j++;
}
}
项目:otter-G
文件:ArchiveBean.java
public void afterPropertiesSet() throws Exception {
executor = new ThreadPoolExecutor(poolSize,
poolSize,
0L,
TimeUnit.MILLISECONDS,
new ArrayBlockingQueue(poolSize * 4),
new NamedThreadFactory(WORKER_NAME),
new ThreadPoolExecutor.CallerRunsPolicy());
}