Java Thread Callable runConcurrently(final Callable task, final int times)

Here you can find the source of runConcurrently(final Callable task, final int times)

Description

Runs a task concurrently.

License

Open Source License

Parameter

Parameter Description
task a Callable to run concurrently.

Exception

Parameter Description
Exception if any of the executed tasks fails.

Declaration

public static void runConcurrently(final Callable<Void> task,
        final int times) throws Exception 

Method Source Code

//package com.java2s;

import java.util.ArrayList;

import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class Main {
    /**/*from  ww  w.  j a  va2s .  c  o  m*/
     * Runs a task concurrently. Allows to test thread-safe behavior.
     *
     * @param task
     *          a {@link Callable} to run concurrently.
     * @throws Exception
     *           if any of the executed tasks fails.
     */
    public static void runConcurrently(final Callable<Void> task,
            final int times) throws Exception {
        final ExecutorService service = Executors.newFixedThreadPool(5);
        final List<Future<?>> futures = new ArrayList<Future<?>>();
        for (int i = 0; i < times; i++) {
            futures.add(service.submit(task));
        }
        for (final Future<?> future : futures) {
            future.get();
        }
    }

    public static void runConcurrently(final Callable<Void>... tasks)
            throws Exception {
        final ExecutorService service = Executors.newFixedThreadPool(5);
        final List<Future<?>> futures = new ArrayList<Future<?>>();
        for (final Callable<Void> task : tasks) {
            futures.add(service.submit(task));
        }
        for (final Future<?> future : futures) {
            future.get();
        }
    }

    /**
     * Run the task concurrently 50 times.
     */
    public static void runConcurrently(final Callable<Void> task)
            throws Exception {
        runConcurrently(task, 50);
    }
}

Related

  1. resolveCompositeKey(final String key, final Map props)
  2. resolveSingle(Object object)
  3. runAndRethrowRuntimeExceptionOnFailure(final Callable operation, final String exceptionMessage)
  4. runConcurrently(final Callable task)
  5. runConcurrently(final Callable task)
  6. runInBackground(final Callable callable)
  7. runTest(Callable test)
  8. runWithTimeout(long millisTimeout, Callable callable)
  9. shuffleRow(final double[] data)