Package java.util.concurrent

Examples of java.util.concurrent.CyclicBarrier


    public void testSuccess() throws Exception {
        Context context = new InitialContext();

        int threads = 200;
        CyclicBarrier start = new CyclicBarrier(threads + 1);
        CountDownLatch finish = new CountDownLatch(threads);

        for (int i = threads; i > 0; i--) {
            Thread thread = new Thread(new Client(context, start, finish));
            thread.setDaemon(true);
            thread.start();
        }

        start.await(30, TimeUnit.SECONDS);

        assertFalse("All threads did not start", start.isBroken());
       
        assertTrue("Client threads did not complete", finish.await(30, TimeUnit.SECONDS));

        assertEquals("incorrect number of instances", 1, MySingleton.instances.get());
View Full Code Here


        exception.set(true);

        Context context = new InitialContext();

        int threads = 200;
        CyclicBarrier start = new CyclicBarrier(threads + 1);
        CountDownLatch finish = new CountDownLatch(threads);

        for (int i = threads; i > 0; i--) {
            Thread thread = new Thread(new Client(context, start, finish));
            thread.setDaemon(true);
            thread.start();
        }

        start.await(30, TimeUnit.SECONDS);

        assertFalse("All threads did not start", start.isBroken());
       
        assertTrue("Client threads did not complete", finish.await(30, TimeUnit.SECONDS));

        assertEquals("incorrect number of instances", 1, MySingleton.instances.get());
View Full Code Here

        //and the cache size should be 1

        DummyServletCache cache = new DummyServletCache();
        int numThreads = 70;

        CyclicBarrier startBarrier = new CyclicBarrier(numThreads + 1);
        CyclicBarrier endBarrier = new CyclicBarrier(numThreads + 1);

        List<ServletGetRunnable> runnables = new ArrayList<ServletGetRunnable>(numThreads);

        //create the threads
        for (int i = 0; i < numThreads; i++) {
            ServletGetRunnable runnable = new ServletGetRunnable(cache, startBarrier, endBarrier, ActionContext.getContext());
            Thread thread = new Thread(runnable);
            runnables.add(runnable);
            thread.start();
        }

        startBarrier.await();
        endBarrier.await();
        Object servlet = cache.get("org/apache/struts2/simple0.jsp");
        assertEquals(1, cache.size());

        for (ServletGetRunnable runnable : runnables) {
            assertSame(servlet, runnable.getObject());
View Full Code Here

        /**
         * @param parties Number of parties
         */
        public BarrierWrapper(int parties) {
            this.barrier = new CyclicBarrier(parties);
        }
View Full Code Here

         * Synchronized is required to ensure CyclicBarrier is initialized only once per Thread Group
         * @param parties Number of parties
         */
        public synchronized void setup(int parties) {
            if(this.barrier== null) {
                this.barrier = new CyclicBarrier(parties);
            }
        }
View Full Code Here

     */
    public SelectionRegistration(SelectableChannel selectableChannel,
            int interestOperations, SelectionListener listener) {
        this.canceling = false;
        this.selectableChannel = selectableChannel;
        this.barrier = new CyclicBarrier(2);
        this.listener = listener;
        this.setInterestOperations(interestOperations);
    }
View Full Code Here

  
   protected void performConcurrentCalls(int numberThreads,
         int numberCallsPerThread, Class<? extends LoadBalancePolicy> policyClass) throws Exception
   {
      ExecutorService executor = Executors.newCachedThreadPool();
      CyclicBarrier barrier = new CyclicBarrier(numberThreads + 1);
      List<Future<Void>> futures = new ArrayList<Future<Void>>();
     
      log.debug("create proxies");
      createNewProxies(0, policyClass, true);
      for (int i = 0; i < numberThreads; i++)
      {
         log.debug("schedule execution");
         Future<Void> future = executor.submit(new InvokerProxyBatch(barrier, numberCallsPerThread, policyClass));
         futures.add(future);
      }
      barrier.await(); // wait for all threads to be ready
      barrier.await(); // wait for all threads to finish
     
      log.debug("all threads finished, let's shutdown the executor and check whether any exceptions were reported");
     
      for (Future<Void> future : futures)
      {
View Full Code Here

        for (int i = 0; i < indexThreads.length; i++) {
            indexThreads[i] = new Indexer(i);
        }

        latch = new CountDownLatch(1);
        barrier1 = new CyclicBarrier(2);
        barrier2 = new CyclicBarrier(2);
        // warmup
        StopWatch stopWatch = new StopWatch().start();
        Indexer warmup = new Indexer(-1).max(10000);
        warmup.start();
        barrier1.await();
        barrier2.await();
        latch.await();
        stopWatch.stop();
        System.out.println("Done Warmup, took [" + stopWatch.totalTime() + "]");

        latch = new CountDownLatch(searcherThreads.length + indexThreads.length);
        barrier1 = new CyclicBarrier(searcherThreads.length + indexThreads.length + 1);
        barrier2 = new CyclicBarrier(searcherThreads.length + indexThreads.length + 1);

        return this;
    }
View Full Code Here

        for (int i = 0; i < writerThreads.length; i++) {
            writerThreads[i] = new Thread(new WriterThread(), "Writer[" + i + "]");
        }

        latch = new CountDownLatch(readerThreads.length + writerThreads.length);
        barrier1 = new CyclicBarrier(readerThreads.length + writerThreads.length + 1);
        barrier2 = new CyclicBarrier(readerThreads.length + writerThreads.length + 1);

        return this;
    }
View Full Code Here

        final Object compiled = se.compile("x + y");
        final AtomicBoolean failed = new AtomicBoolean();

        Thread[] threads = new Thread[50];
        final CountDownLatch latch = new CountDownLatch(threads.length);
        final CyclicBarrier barrier = new CyclicBarrier(threads.length + 1);
        for (int i = 0; i < threads.length; i++) {
            threads[i] = new Thread(new Runnable() {
                @Override public void run() {
                    try {
                        barrier.await();
                        long x = ThreadLocalRandom.current().nextInt();
                        long y = ThreadLocalRandom.current().nextInt();
                        long addition = x + y;
                        Map<String, Object> vars = new HashMap<String, Object>();
                        vars.put("x", x);
                        vars.put("y", y);
                        ExecutableScript script = se.executable(compiled, vars);
                        for (int i = 0; i < 100000; i++) {
                            long result = ((Number) script.run()).longValue();
                            assertThat(result, equalTo(addition));
                        }
                    } catch (Throwable t) {
                        failed.set(true);
                        logger.error("failed", t);
                    } finally {
                        latch.countDown();
                    }
                }
            });
        }
        for (int i = 0; i < threads.length; i++) {
            threads[i].start();
        }
        barrier.await();
        latch.await();
        assertThat(failed.get(), equalTo(false));
    }
View Full Code Here

TOP

Related Classes of java.util.concurrent.CyclicBarrier

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.