Package java.util.concurrent

Examples of java.util.concurrent.CyclicBarrier


                        // Mangle the cookie, replacing Path with $Path, etc.
                        sessionCookie = sessionCookie.replaceFirst("(\\W)(P|p)ath=", "$1\\$Path=");

                        ExecutorService executor = Executors.newCachedThreadPool();
                        int clientsCount = 50;
                        CyclicBarrier barrier = new CyclicBarrier( clientsCount + 1 );
                        int requestsCount = 100;
                        Worker[] workers = new Worker[clientsCount];
                        for ( int i = 0; i < clientsCount; ++i )
                        {
                            workers[i] = new Worker( barrier, requestsCount, sessionCookie, urls );
                            workers[i].start();
                            executor.execute( workers[i] );
                        }
                        // Wait for all workers to be ready
                        barrier.await();
                        long start = System.nanoTime();

                        // Wait for all workers to be done
                        barrier.await();
                        long end = System.nanoTime();
                        long elapsed = TimeUnit.NANOSECONDS.toMillis( end - start );
                        System.out.println( "elapsed ms: " + elapsed );

                        for ( Worker worker : workers )
View Full Code Here


        stopServer();
    }

    public void testSslGet() throws Exception
    {
        final CyclicBarrier barrier = new CyclicBarrier(2);
       
        ContentExchange httpExchange = new ContentExchange()
        {
            protected void onResponseComplete() throws IOException
            {
                super.onResponseComplete();
                try{barrier.await();}catch(Exception e){}
            }
        };
       
        // httpExchange.setURL("https://dav.codehaus.org/user/jesse/index.html");
        httpExchange.setURL("https://localhost:" + _port + "/");
        httpExchange.setMethod(HttpMethods.GET);
        // httpExchange.setRequestHeader("Connection","close");

        _httpClient.send(httpExchange);
       
        barrier.await(10,TimeUnit.SECONDS);

        assertEquals(HttpServletResponse.SC_OK,httpExchange.getResponseStatus());

        // System.err.println(httpExchange.getResponseContent());
        assertTrue(httpExchange.getResponseContent().length()>400);
View Full Code Here

    public void testGetWithContentExchange() throws Exception
    {
        int i = 1;

        final CyclicBarrier barrier = new CyclicBarrier(2);
        ContentExchange httpExchange = new ContentExchange()
        {
            protected void onResponseComplete() throws IOException
            {
                super.onResponseComplete();
                try{barrier.await();}catch(Exception e){}
            }
        };
        httpExchange.setURL("http://localhost:" + _port + "/?i=" + i);
        httpExchange.setMethod(HttpMethods.GET);
       
        _httpClient.send(httpExchange);
        
        try{barrier.await();}catch(Exception e){} 
       
    }
View Full Code Here

    }
   
   
    public void testDestinationSecurityCaching() throws Exception
    {
        final CyclicBarrier barrier = new CyclicBarrier(2);
       
        ContentExchange httpExchange = new ContentExchange()
        {
            protected void onResponseComplete() throws IOException
            {
                super.onResponseComplete();
                try{barrier.await();}catch(Exception e){}
            }
        };
       
        httpExchange.setURL("http://localhost:" + _port + "/?i=1");
        httpExchange.setMethod(HttpMethods.GET);
       
        _httpClient.send(httpExchange);

        try{barrier.await();}catch(Exception e){}
       
       
        barrier.reset();
        ContentExchange httpExchange2 = new ContentExchange()
        {
            protected void onResponseComplete() throws IOException
            {
                super.onResponseComplete();
                try{barrier.await();}catch(Exception e){}
            }
        };
       
        httpExchange2.setURL("http://localhost:" + _port + "/?i=2");
        httpExchange2.setMethod(HttpMethods.GET);
       
        _httpClient.send(httpExchange2);

        try{barrier.await();}catch(Exception e){}
       
        assertFalse( "exchange was retried", httpExchange2.getRetryStatus() );
       
    }  
View Full Code Here

    int NUM_THREADS = 3;
    Thread[] threads = new Thread[NUM_THREADS];
    final AtomicBoolean failed = new AtomicBoolean();
    final AtomicInteger iters = new AtomicInteger();
    final int NUM_ITER = 200 * RANDOM_MULTIPLIER;
    final CyclicBarrier restart = new CyclicBarrier(NUM_THREADS,
                                                    new Runnable() {
                                                      @Override
                                                      public void run() {
                                                        cache.purgeAllCaches();
                                                        iters.incrementAndGet();
                                                      }
                                                    });
    for(int threadIDX=0;threadIDX<NUM_THREADS;threadIDX++) {
      threads[threadIDX] = new Thread() {
          @Override
          public void run() {

            try {
              while(!failed.get()) {
                final int op = random().nextInt(3);
                if (op == 0) {
                  // Purge all caches & resume, once all
                  // threads get here:
                  restart.await();
                  if (iters.get() >= NUM_ITER) {
                    break;
                  }
                } else if (op == 1) {
                  Bits docsWithField = cache.getDocsWithField(reader, "sparse");
                  for (int i = 0; i < docsWithField.length(); i++) {
                    assertEquals(i%2 == 0, docsWithField.get(i));
                  }
                } else {
                  FieldCache.Ints ints = cache.getInts(reader, "sparse", true);
                  Bits docsWithField = cache.getDocsWithField(reader, "sparse");
                  for (int i = 0; i < docsWithField.length(); i++) {
                    if (i%2 == 0) {
                      assertTrue(docsWithField.get(i));
                      assertEquals(i, ints.get(i));
                    } else {
                      assertFalse(docsWithField.get(i));
                    }
                  }
                }
              }
            } catch (Throwable t) {
              failed.set(true);
              restart.reset();
              throw new RuntimeException(t);
            }
          }
        };
      threads[threadIDX].start();
View Full Code Here

        conf.setOption(TimedRuleExectionOption.YES);

        KnowledgeBase kbase = loadKnowledgeBaseFromString(str);
        KieSession ksession = createKnowledgeSession(kbase, conf);

        final CyclicBarrier barrier = new CyclicBarrier(2);
        final AtomicBoolean aBool = new AtomicBoolean(true);
        AgendaEventListener agendaEventListener = new DefaultAgendaEventListener() {
            public void afterMatchFired(org.kie.api.event.rule.AfterMatchFiredEvent event) {
                try {
                    if (aBool.get()) {
                        barrier.await();
                        aBool.set(false);
                    }
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            }
        };
        ksession.addEventListener(agendaEventListener);

        List list = new ArrayList();
        ksession.setGlobal("list", list);

        // Using the Pseudo Clock.
        SessionClock clock = ksession.getSessionClock();
        SessionPseudoClock pseudoClock = (SessionPseudoClock) clock;

        // Insert the event.
        String eventOne = "one";
        ksession.insert(eventOne);

        // Advance the time .... so the timer will fire.
        pseudoClock.advanceTime(10000, TimeUnit.MILLISECONDS);

        // Rule doesn't fire in PHREAK. This is because you need to call 'fireAllRules' after you've inserted the fact, otherwise the timer
        // job is not created.

        ksession.fireAllRules();

        // Rule still doesn't fire, because the DefaultTimerJob is created now, and now we need to advance the timer again.

        pseudoClock.advanceTime(30000, TimeUnit.MILLISECONDS);
        barrier.await();
        barrier.reset();
        aBool.set(true);

        pseudoClock.advanceTime(10000, TimeUnit.MILLISECONDS);
        barrier.await();
        barrier.reset();
        aBool.set(true);

        String eventTwo = "two";
        ksession.insert(eventTwo);
        ksession.fireAllRules();

        // 60
        pseudoClock.advanceTime(10000, TimeUnit.MILLISECONDS);
        barrier.await();
        barrier.reset();
        aBool.set(true);

        // 70
        pseudoClock.advanceTime(10000, TimeUnit.MILLISECONDS);
        barrier.await();
        barrier.reset();
        aBool.set(true);

        //From here, the second rule should fire.
        //phaser.register();
        pseudoClock.advanceTime(10000, TimeUnit.MILLISECONDS);
        barrier.await();
        barrier.reset();
        aBool.set(true);

        // Now 2 rules have fired, and those will now fire every 10 seconds.
        pseudoClock.advanceTime(20000, TimeUnit.MILLISECONDS);
        barrier.await();
        barrier.reset();

        pseudoClock.advanceTime(20000, TimeUnit.MILLISECONDS);
        aBool.set(true);
        barrier.await();
        barrier.reset();

        pseudoClock.advanceTime(20000, TimeUnit.MILLISECONDS);
        aBool.set(true);
        barrier.await();
        barrier.reset();

        ksession.destroy();
    }
View Full Code Here

       
        // each thread will post its totals here
        final int[] totals = new int[]{0,0,0};
       
        // after each step, all threads wait.  The +1 is for this thread (the co-ordinator)
        final CyclicBarrier barrier =
                new CyclicBarrier(totals.length+1, new Runnable() {
                  public void run() {
                      // all threads waiting; decrement number of steps
                      steps[0]--;
                  }
                });

        // start off all threads
        for(int i=0; i<totals.length; i++) {
            final int j=i;
            new Thread() {
                public void run() {
                    try {
                        ((RequestScopedService)calculator).__isis_startRequest();
                        // keep incrementing, til no more steps
                        while(steps[0]>0) {
                            try {
                                calculator.add((j+1));
                                totals[j] = calculator.getTotal();
                                barrier.await();
                            } catch (InterruptedException e) {
                                throw new RuntimeException(e);
                            } catch (BrokenBarrierException e) {
                                throw new RuntimeException(e);
                            }
                        }
                    } finally {
                        ((RequestScopedService)calculator).__isis_endRequest();
                    }
                };
            }.start();
        }
       
        // this thread is the co-ordinator; move onto next step when all are waiting
        while(steps[0]>0) {
            barrier.await();
        }
       
        assertThat(totals[0], is(10));
        assertThat(totals[1], is(20));
        assertThat(totals[2], is(30));
View Full Code Here

        System.out.println("-- [" + Thread.currentThread().getName() + "] " + msg);
    }


    public void testConcurrentStartupAndMerging() throws Exception {
        start_connecting=new CyclicBarrier(NUM+1);
        received_all_views=new CyclicBarrier(NUM+1);
        start_disconnecting=new CyclicBarrier(NUM+1);
        disconnected=new CyclicBarrier(NUM+1);

        long start, stop;

        for(int i=0; i < threads.length; i++) {
            threads[i]=new MyThread(i);
View Full Code Here

        super(name);
    }

    public void setUp() throws Exception {
        super.setUp();
        barrier=new CyclicBarrier(4);
        ch1=createChannel();
        ch2=createChannel();
        ch3=createChannel();
    }
View Full Code Here

    public MultiplexerStressTest() {

    }

    private void start() throws Exception {
        CyclicBarrier barrier=new CyclicBarrier(7);
        f1=new JChannelFactory();
        f2=new JChannelFactory();
        f3=new JChannelFactory();

        f1.setMultiplexerConfig("stacks.xml");
        f2.setMultiplexerConfig("stacks.xml");
        f3.setMultiplexerConfig("stacks.xml");

        c11=f1.createMultiplexerChannel("udp", "A");
        c11.connect("X");
        r11=new MyReceiver(barrier);
        c11.setReceiver(r11);

        c12=f1.createMultiplexerChannel("udp", "B");
        c12.connect("X");
        r12=new MyReceiver(barrier);
        c12.setReceiver(r12);

        c21=f2.createMultiplexerChannel("udp", "A");
        c21.connect("X");
        r21=new MyReceiver(barrier);
        c21.setReceiver(r21);

        c22=f2.createMultiplexerChannel("udp", "B");
        c22.connect("X");
        r22=new MyReceiver(barrier);
        c22.setReceiver(r22);

        c31=f3.createMultiplexerChannel("udp", "A");
        c31.connect("X");
        r31=new MyReceiver(barrier);
        c31.setReceiver(r31);

        c32=f3.createMultiplexerChannel("udp", "B");
        c32.connect("X");
        r32=new MyReceiver(barrier);
        c32.setReceiver(r32);

        long start, stop;

        new MySender(barrier, c11).start();
        new MySender(barrier, c12).start();
        new MySender(barrier, c21).start();
        new MySender(barrier, c22).start();
        new MySender(barrier, c31).start();
        new MySender(barrier, c32).start();

        barrier.await(); // start the 6 sender threads
        start=System.currentTimeMillis();

        barrier.await(); // results from the 6 receivers
        stop=System.currentTimeMillis();

        System.out.println("Cluster A:\n" + printStats(stop-start,new MyReceiver[]{r11,r21,r31}));
        System.out.println("Cluster B:\n" + printStats(stop-start,new MyReceiver[]{r12,r22,r32}));
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.