Java Code Examples for java.util.concurrent.ForkJoinPool

The following are top voted examples for showing how to use java.util.concurrent.ForkJoinPool. These examples are extracted from open source projects. You can vote up the examples you like and your votes will be used in our system to generate more good examples.
Example 1
Project: JavaCommon   File: ForkJoinTaskDemo.java   View source code 7 votes vote down vote up
public static void main(String[] args) throws InterruptedException {
	long startTime = System.currentTimeMillis();
	int count = 0;
	for (int i = 1; i < 10; i++) {
		count = count + i;
		Thread.sleep(1000);
	}
	System.out.println(count);
	long endTime = System.currentTimeMillis(); // 获取结束时间
	System.out.println("程序运行时间: " + (startTime - endTime) + "ms");

	long startTime1 = System.currentTimeMillis();
	CountTask countTask = new CountTask(1, 10);
	ForkJoinPool forkJoinPool = new ForkJoinPool();
	Future<Integer> futureTask = forkJoinPool.submit(countTask);
	try {
		System.out.println(futureTask.get());
	} catch (ExecutionException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	long endTime1 = System.currentTimeMillis(); // 获取结束时间
	System.out.println("程序运行时间: " + (startTime1 - endTime1) + "ms");

}
 
Example 2
Project: syndesis   File: KeyGeneratorTest.java   View source code 7 votes vote down vote up
@Test
public void testCreateKeyMultithreaded() {
    final int count = 100000;

    final Collection<Callable<String>> tasks = IntStream.range(0, count).boxed()
        .map(i -> (Callable<String>) () -> KeyGenerator.createKey()).collect(Collectors.toList());

    final ForkJoinPool pool = ForkJoinPool.commonPool();

    final List<Future<String>> results = pool.invokeAll(tasks);

    final Set<String> keys = results.stream().map(t -> {
        try {
            return t.get();
        } catch (InterruptedException | ExecutionException e) {
            throw new IllegalStateException(e);
        }
    }).collect(Collectors.toSet());

    Assert.assertEquals("If " + count + " key generations are performed in parallel, it should yield " + count
        + " of distinct keys", count, keys.size());
}
 
Example 3
Project: openjdk-jdk10   File: ForkJoinPoolTest.java   View source code 6 votes vote down vote up
/**
 * execute(runnable) runs it to completion
 */
public void testExecuteRunnable() throws Throwable {
    ExecutorService e = new ForkJoinPool(1);
    try (PoolCleaner cleaner = cleaner(e)) {
        final AtomicBoolean done = new AtomicBoolean(false);
        Future<?> future = e.submit(new CheckedRunnable() {
            public void realRun() {
                done.set(true);
            }});
        assertNull(future.get());
        assertNull(future.get(randomExpiredTimeout(), randomTimeUnit()));
        assertTrue(done.get());
        assertTrue(future.isDone());
        assertFalse(future.isCancelled());
    }
}
 
Example 4
Project: spartan-jasync   File: GeneratorIterator.java   View source code 6 votes vote down vote up
public GeneratorIterator(int maxWorkQueueDepth, Generator<U> theGenerator, Completion completion,
    Consumer<Throwable> exceptionHandler)
{
  this.maxWorkQueueDepth = maxWorkQueueDepth;
  this.completion = completion;
  this.exceptionHandler = exceptionHandler;
  this.workQueue = new ArrayBlockingQueue<>(maxWorkQueueDepth);
  this.drainedItems = new ArrayList<>(maxWorkQueueDepth + 1);
  this.isForkJoinTaskComplete = new AtomicBoolean(false);
  this.future = ForkJoinPool.commonPool().submit(() -> {
    try {
      theGenerator.call(this.workQueue::put);
    } catch(InterruptedException ex) {
    } finally {
      this.workQueue.done();
    }
    return null; // Void future requires a return value of null
  });
  this.drainedItemsCount = this.position = maxWorkQueueDepth;
}
 
Example 5
Project: openjdk-jdk10   File: ForkJoinTask8Test.java   View source code 6 votes vote down vote up
private void testInvokeOnPool(ForkJoinPool pool, RecursiveAction a) {
    try (PoolCleaner cleaner = cleaner(pool)) {
        assertFalse(a.isDone());
        assertFalse(a.isCompletedNormally());
        assertFalse(a.isCompletedAbnormally());
        assertFalse(a.isCancelled());
        assertNull(a.getException());
        assertNull(a.getRawResult());

        assertNull(pool.invoke(a));

        assertTrue(a.isDone());
        assertTrue(a.isCompletedNormally());
        assertFalse(a.isCompletedAbnormally());
        assertFalse(a.isCancelled());
        assertNull(a.getException());
        assertNull(a.getRawResult());
    }
}
 
Example 6
Project: openjdk-jdk10   File: ForkJoinPoolTest.java   View source code 6 votes vote down vote up
/**
 * setUncaughtExceptionHandler changes handler for uncaught exceptions.
 *
 * Additionally tests: Overriding ForkJoinWorkerThread.onStart
 * performs its defined action
 */
public void testSetUncaughtExceptionHandler() throws InterruptedException {
    final CountDownLatch uehInvoked = new CountDownLatch(1);
    final Thread.UncaughtExceptionHandler ueh =
        new Thread.UncaughtExceptionHandler() {
            public void uncaughtException(Thread t, Throwable e) {
                threadAssertTrue(e instanceof MyError);
                threadAssertTrue(t instanceof FailingFJWSubclass);
                uehInvoked.countDown();
            }};
    ForkJoinPool p = new ForkJoinPool(1, new FailingThreadFactory(),
                                      ueh, false);
    try (PoolCleaner cleaner = cleaner(p)) {
        assertSame(ueh, p.getUncaughtExceptionHandler());
        try {
            p.execute(new FibTask(8));
            await(uehInvoked);
        } finally {
            p.shutdownNow(); // failure might have prevented processing task
        }
    }
}
 
Example 7
Project: java-threading   File: JoinableFutureFactory.java   View source code 6 votes vote down vote up
final <T> void post(@NotNull Consumer<T> callback, T state, boolean mainThreadAffinitized) {
	Requires.notNull(callback, "callback");

	if (mainThreadAffinitized) {
		JoinableFuture<?> transientFuture = this.runAsync(() -> {
			this.getContext().getAmbientFuture().post(callback, state, true);
			return Futures.completedNull();
		});

		if (transientFuture.getFuture().isCompletedExceptionally()) {
			// rethrow the exception.
			transientFuture.getFuture().join();
		}
	} else {
		ForkJoinPool.commonPool().execute(ExecutionContext.wrap(() -> callback.accept(state)));
	}
}
 
Example 8
Project: non-dominated-sorting   File: AbstractJFBSorting.java   View source code 6 votes vote down vote up
AbstractJFBSorting(int maximumPoints, int maximumDimension, int allowedThreads) {
    super(maximumPoints, maximumDimension);

    if (allowedThreads == 1) {
        pool = null; // current thread only execution
    } else {
        pool = allowedThreads > 1 ? new ForkJoinPool(allowedThreads) : new ForkJoinPool();
    }
    this.allowedThreads = allowedThreads > 0 ? allowedThreads : -1;

    sorter = new DoubleArraySorter(maximumPoints);
    medianSwap = new double[maximumPoints];
    indices = new int[maximumPoints];
    ranks = new int[maximumPoints];
    points = new double[maximumPoints][];
    transposedPoints = new double[maximumDimension][maximumPoints];
    rankQuery = createStructure(maximumPoints);

    internalIndices = new int[maximumPoints];
    lastFrontOrdinates = new double[maximumPoints];
    splitMerge = new SplitMergeHelper(maximumPoints);
}
 
Example 9
Project: openjdk-jdk10   File: ForkJoinPoolTest.java   View source code 6 votes vote down vote up
/**
 * get of returned element of invokeAll(c) throws
 * ExecutionException on failed task
 */
public void testInvokeAll4() throws Throwable {
    ExecutorService e = new ForkJoinPool(1);
    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);
        }
    }
}
 
Example 10
Project: openjdk-jdk10   File: ThreadLessCommon.java   View source code 6 votes vote down vote up
private static void realMain(String[] args) throws Throwable {
    if (debug) {
        String pp = System.getProperty(
                "java.util.concurrent.ForkJoinPool.common.parallelism");
        System.out.println(
                "java.util.concurrent.ForkJoinPool.common.parallelism:" + pp);
        String tf = System.getProperty(
                "java.util.concurrent.ForkJoinPool.common.threadFactory");
        System.out.println(
                "java.util.concurrent.ForkJoinPool.common.threadFactory:" + tf);
    }

    long from = 0, to = 50000;
    RecursiveTask<Long> task = new SumTask(from, to, Thread.currentThread());
    long sum = task.invoke();
    System.out.printf("%nSum: from [%d] to [%d] = [%d]%n", from, to, sum);

    task.fork();
    sum = task.join();
    System.out.printf("%nSum: from [%d] to [%d] = [%d]%n", from, to, sum);

    sum = ForkJoinPool.commonPool().invoke(task.fork());
    System.out.printf("%nSum: from [%d] to [%d] = [%d]%n", from, to, sum);
}
 
Example 11
Project: Java-9-Cookbook   File: Chapter15Testing.java   View source code 5 votes vote down vote up
private static void demo1_class_level_integration() {
    String result = IntStream.rangeClosed(1, speedLimitByLane.length).mapToDouble(i -> {
        AverageSpeed averageSpeed = new AverageSpeed(trafficUnitsNumber, timeSec, dateLocation, speedLimitByLane, i,100);
        ForkJoinPool commonPool = ForkJoinPool.commonPool();
        return commonPool.invoke(averageSpeed);
    }).mapToObj(Double::toString).collect(Collectors.joining(", "));
    System.out.println("Average speed = " + result);

    TrafficDensity trafficDensity = new TrafficDensity();
    Integer[] trafficByLane = trafficDensity.trafficByLane(trafficUnitsNumber, timeSec, dateLocation, speedLimitByLane );
    System.out.println("Traffic density = " + Arrays.stream(trafficByLane).map(Object::toString).collect(Collectors.joining(", ")));
}
 
Example 12
Project: jkes   File: ForkBlur.java   View source code 5 votes vote down vote up
public static BufferedImage blur(BufferedImage srcImage) {
    int w = srcImage.getWidth();
    int h = srcImage.getHeight();

    int[] src = srcImage.getRGB(0, 0, w, h, null, 0, w);
    int[] dst = new int[src.length];

    System.out.println("Array size is " + src.length);
    System.out.println("Threshold is " + sThreshold);

    int processors = Runtime.getRuntime().availableProcessors();
    System.out.println(Integer.toString(processors) + " processor"
            + (processors != 1 ? "s are " : " is ")
            + "available");

    ForkBlur fb = new ForkBlur(src, 0, src.length, dst);

    ForkJoinPool pool = new ForkJoinPool();

    long startTime = System.currentTimeMillis();
    pool.invoke(fb);
    long endTime = System.currentTimeMillis();

    System.out.println("Image blur took " + (endTime - startTime) +
            " milliseconds.");

    BufferedImage dstImage =
            new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
    dstImage.setRGB(0, 0, w, h, dst, 0, w);

    return dstImage;
}
 
Example 13
Project: Spring-5.0-Cookbook   File: EmployeeParallelStreamService.java   View source code 5 votes vote down vote up
public double getAverageMoreProcessors() throws InterruptedException, ExecutionException{
	ToIntFunction<Employee> sizeEmpArr = (e) -> {
	    System.out.println("Thread: " + Thread.currentThread().getName());
	    	return e.getAge();
	   };
	Callable<Double> task = () -> employeeDaoImpl.getEmployees().stream().mapToInt(sizeEmpArr).average().getAsDouble();
	ForkJoinPool forkJoinPool = new ForkJoinPool(4);
	
	double avgAge = forkJoinPool.submit(task).get();
	return avgAge;
	
}
 
Example 14
Project: openjdk-jdk10   File: ForkJoinTask8Test.java   View source code 5 votes vote down vote up
public void testAbnormalInvoke(ForkJoinPool pool) {
    RecursiveAction a = new CheckedRecursiveAction() {
        protected void realCompute() {
            FailingAsyncFib f = new FailingAsyncFib(8);
            try {
                f.invoke();
                shouldThrow();
            } catch (FJException success) {
                checkCompletedAbnormally(f, success);
            }
        }};
    testInvokeOnPool(pool, a);
}
 
Example 15
Project: openjdk-jdk10   File: ForkJoinPoolTest.java   View source code 5 votes vote down vote up
/**
 * timed invokeAll(null) throws NullPointerException
 */
public void testTimedInvokeAll1() throws Throwable {
    ExecutorService e = new ForkJoinPool(1);
    try (PoolCleaner cleaner = cleaner(e)) {
        try {
            e.invokeAll(null, randomTimeout(), randomTimeUnit());
            shouldThrow();
        } catch (NullPointerException success) {}
    }
}
 
Example 16
Project: openjdk-jdk10   File: ForkJoinPoolTest.java   View source code 5 votes vote down vote up
/**
 * timed invokeAll(c) returns results of all completed tasks in c
 */
public void testTimedInvokeAll5() throws Throwable {
    ForkJoinPool e = new ForkJoinPool(1);
    try (PoolCleaner cleaner = cleaner(e)) {
        List<Callable<String>> l = new ArrayList<>();
        l.add(new StringTask());
        l.add(new StringTask());
        List<Future<String>> futures
            = e.invokeAll(l, LONG_DELAY_MS, MILLISECONDS);
        assertEquals(2, futures.size());
        for (Future<String> future : futures)
            assertSame(TEST_STRING, future.get());
    }
}
 
Example 17
Project: openjdk-jdk10   File: ForkJoinPoolTest.java   View source code 5 votes vote down vote up
/**
 * invokeAny(null) throws NullPointerException
 */
public void testInvokeAny1() throws Throwable {
    ExecutorService e = new ForkJoinPool(1);
    try (PoolCleaner cleaner = cleaner(e)) {
        try {
            e.invokeAny(null);
            shouldThrow();
        } catch (NullPointerException success) {}
    }
}
 
Example 18
Project: scanning   File: LevelRunner.java   View source code 5 votes vote down vote up
protected ForkJoinPool createService() {
	// TODO Need spring config for this.
	Integer processors = Integer.getInteger("org.eclipse.scanning.level.runner.pool.count");
	if (processors==null || processors<1) processors = Runtime.getRuntime().availableProcessors();
	return new ForkJoinPool(processors);
       // Slightly faster than thread pool executor @see ScanAlgorithmBenchMarkTest
}
 
Example 19
Project: morpheus-core   File: Range.java   View source code 5 votes vote down vote up
/**
 * Returns an array of the elements in this range
 * @param parallel  true to assemble the array using fork & join
 * @return          the array of elements in range
 */
@SuppressWarnings("unchecked")
default Array<T> toArray(boolean parallel) {
    if (!parallel) {
        final int length = (int)estimateSize();
        final Iterable<Object> iterable = (Iterable<Object>)this;
        return (Array<T>)ArrayBuilder.of(length).addAll(iterable).toArray();
    } else {
        final ToArrayTask<T> task = new ToArrayTask<>(this, 1000);
        return ForkJoinPool.commonPool().invoke(task);
    }
}
 
Example 20
Project: openjdk-jdk10   File: ArrayPrefixHelpers.java   View source code 5 votes vote down vote up
/** Root task constructor */
public IntCumulateTask(IntCumulateTask parent,
                       IntBinaryOperator function,
                       int[] array, int lo, int hi) {
    super(parent);
    this.function = function; this.array = array;
    this.lo = this.origin = lo; this.hi = this.fence = hi;
    int p;
    this.threshold =
        (p = (hi - lo) / (ForkJoinPool.getCommonPoolParallelism() << 3))
        <= MIN_PARTITION ? MIN_PARTITION : p;
}
 
Example 21
Project: orbit-spring   File: ActorInfoContributorIntegrationTest.java   View source code 5 votes vote down vote up
private void waitForBackgroundProcessToComplete() throws InterruptedException
{
    while (((ForkJoinPool) executor).getActiveThreadCount() > 0)
    {
        Thread.sleep(1);
    }
}
 
Example 22
Project: openjdk-jdk10   File: ForkJoinTaskTest.java   View source code 5 votes vote down vote up
/**
 * getPool of executing task returns its pool
 */
public void testGetPool() {
    final ForkJoinPool mainPool = mainPool();
    RecursiveAction a = new CheckedRecursiveAction() {
        protected void realCompute() {
            assertSame(mainPool, getPool());
        }};
    testInvokeOnPool(mainPool, a);
}
 
Example 23
Project: jdk8u-jdk   File: ArrayPrefixHelpers.java   View source code 5 votes vote down vote up
/** Root task constructor */
public CumulateTask(CumulateTask<T> parent,
                    BinaryOperator<T> function,
                    T[] array, int lo, int hi) {
    super(parent);
    this.function = function; this.array = array;
    this.lo = this.origin = lo; this.hi = this.fence = hi;
    int p;
    this.threshold =
            (p = (hi - lo) / (ForkJoinPool.getCommonPoolParallelism() << 3))
            <= MIN_PARTITION ? MIN_PARTITION : p;
}
 
Example 24
Project: OpenJSharp   File: ArrayPrefixHelpers.java   View source code 5 votes vote down vote up
/** Root task constructor */
public LongCumulateTask(LongCumulateTask parent,
                        LongBinaryOperator function,
                        long[] array, int lo, int hi) {
    super(parent);
    this.function = function; this.array = array;
    this.lo = this.origin = lo; this.hi = this.fence = hi;
    int p;
    this.threshold =
            (p = (hi - lo) / (ForkJoinPool.getCommonPoolParallelism() << 3))
            <= MIN_PARTITION ? MIN_PARTITION : p;
}
 
Example 25
Project: OpenJSharp   File: ArrayPrefixHelpers.java   View source code 5 votes vote down vote up
/** Root task constructor */
public DoubleCumulateTask(DoubleCumulateTask parent,
                          DoubleBinaryOperator function,
                          double[] array, int lo, int hi) {
    super(parent);
    this.function = function; this.array = array;
    this.lo = this.origin = lo; this.hi = this.fence = hi;
    int p;
    this.threshold =
            (p = (hi - lo) / (ForkJoinPool.getCommonPoolParallelism() << 3))
            <= MIN_PARTITION ? MIN_PARTITION : p;
}
 
Example 26
Project: openjdk-jdk10   File: ForkJoinPoolTest.java   View source code 5 votes vote down vote up
/**
 * get of submit(callable) throws ExecutionException if callable
 * throws exception
 */
public void testSubmitEE() throws Throwable {
    ForkJoinPool p = new ForkJoinPool(1);
    try (PoolCleaner cleaner = cleaner(p)) {
        try {
            p.submit(new Callable() {
                    public Object call() { throw new ArithmeticException(); }})
                .get();
            shouldThrow();
        } catch (ExecutionException success) {
            assertTrue(success.getCause() instanceof ArithmeticException);
        }
    }
}
 
Example 27
Project: openjdk-jdk10   File: RecursiveActionTest.java   View source code 5 votes vote down vote up
private void testInvokeOnPool(ForkJoinPool pool, RecursiveAction a) {
    try (PoolCleaner cleaner = cleaner(pool)) {
        checkNotDone(a);

        assertNull(pool.invoke(a));

        checkCompletedNormally(a);
    }
}
 
Example 28
Project: Java-SE-9-Road-to-Concurrent-and-High-Performance-Programming   File: Main.java   View source code 5 votes vote down vote up
/**
 * Main method of the class
 */
public static void main(String[] args) {
	// Array of 100 integers
	int array[]=new int[100];
	// Task to process the array
	Task task=new Task(array,0,100);
	// ForkJoinPool to execute the Task
	ForkJoinPool pool=new ForkJoinPool();
	
	// Execute the task
	pool.execute(task);

	// Shutdown the ForkJoinPool
	pool.shutdown();
	
	// Wait for the finalization of the task
	try {
		pool.awaitTermination(1, TimeUnit.DAYS);
	} catch (InterruptedException e) {
		e.printStackTrace();
	}
	
	// Check if the task has thrown an Exception. If it's the case, write it
	// to the console
	
	if (task.isCompletedAbnormally()) {
		System.out.printf("Main: An exception has ocurred\n");
		System.out.printf("Main: %s\n",task.getException());
	}
	
	System.out.printf("Main: Result: %d",task.join());
}
 
Example 29
Project: morpheus-core   File: ArrayBase.java   View source code 5 votes vote down vote up
@Override
public int count(Predicate<ArrayValue<T>> predicate) {
    if (isParallel() && length() > 0) {
        final int processors = Runtime.getRuntime().availableProcessors();
        final int splitThreshold = Math.max(length() / processors, 10000);
        return ForkJoinPool.commonPool().invoke(new CountTask<>(this, 0, length()-1, splitThreshold, predicate));
    } else {
        final CountTask task = new CountTask<>(this, 0, length()-1, Integer.MAX_VALUE, predicate);
        return task.compute();
    }
}
 
Example 30
Project: morpheus-core   File: ArrayBase.java   View source code 5 votes vote down vote up
@Override
public final Array<Boolean> mapToBooleans(ToBooleanFunction<ArrayValue<T>> mapper) {
    final Array<Boolean> result = Array.of(Boolean.class, length());
    final MapValues<Boolean> action = new MapValues<>(0, length() - 1, mapper, result);
    if (isParallel()) {
        ForkJoinPool.commonPool().invoke(action);
        return result;
    } else {
        action.compute();
        return result;
    }
}
 
Example 31
Project: openjdk-jdk10   File: ForkJoinPoolTest.java   View source code 5 votes vote down vote up
/**
 * A submitted privileged action runs to completion
 */
public void testSubmitPrivilegedAction() throws Exception {
    final Callable callable = Executors.callable(new PrivilegedAction() {
            public Object run() { return TEST_STRING; }});
    Runnable r = new CheckedRunnable() {
    public void realRun() throws Exception {
        ExecutorService e = new ForkJoinPool(1);
        try (PoolCleaner cleaner = cleaner(e)) {
            Future future = e.submit(callable);
            assertSame(TEST_STRING, future.get());
        }
    }};

    runWithPermissions(r, new RuntimePermission("modifyThread"));
}
 
Example 32
Project: openjdk-jdk10   File: ForkJoinPoolTest.java   View source code 5 votes vote down vote up
/**
 * Completed submit(ForkJoinTask) returns result
 */
public void testSubmitForkJoinTask() throws Throwable {
    ForkJoinPool p = new ForkJoinPool(1);
    try (PoolCleaner cleaner = cleaner(p)) {
        ForkJoinTask<Integer> f = p.submit(new FibTask(8));
        assertEquals(21, (int) f.get());
    }
}
 
Example 33
Project: openjdk-jdk10   File: ForkJoinTask8Test.java   View source code 5 votes vote down vote up
public void testForkQuietlyJoin(ForkJoinPool pool) {
    RecursiveAction a = new CheckedRecursiveAction() {
        protected void realCompute() {
            AsyncFib f = new AsyncFib(8);
            assertSame(f, f.fork());
            f.quietlyJoin();
            f.checkCompletedNormally();
        }};
    testInvokeOnPool(pool, a);
}
 
Example 34
Project: jdk8u-jdk   File: SubmissionTest.java   View source code 5 votes vote down vote up
public static void main(String[] args) throws Throwable {
    final ForkJoinPool e = new ForkJoinPool(1);
    final AtomicBoolean b = new AtomicBoolean();
    final Runnable setFalse = () -> b.set(false);
    for (int i = 0; i < 100000; i++) {
        b.set(true);
        e.execute(setFalse);
        long st = System.nanoTime();
        while (b.get()) {
            if (System.nanoTime() - st >= TimeUnit.SECONDS.toNanos(10)) {
                throw new RuntimeException("Submitted task failed to execute");
            }
        }
    }
}
 
Example 35
Project: openjdk-jdk10   File: ForkJoinPoolTest.java   View source code 5 votes vote down vote up
/**
 * Pool maintains parallelism when using ManagedBlocker
 */
public void testBlockingForkJoinTask() throws Throwable {
    ForkJoinPool p = new ForkJoinPool(4);
    try {
        ReentrantLock lock = new ReentrantLock();
        ManagedLocker locker = new ManagedLocker(lock);
        ForkJoinTask<Integer> f = new LockingFibTask(20, locker, lock);
        p.execute(f);
        assertEquals(6765, (int) f.get());
    } finally {
        p.shutdownNow(); // don't wait out shutdown
    }
}
 
Example 36
Project: openjdk-jdk10   File: ForkJoinTask8Test.java   View source code 5 votes vote down vote up
public void testForkTimedGet(ForkJoinPool pool) {
    RecursiveAction a = new CheckedRecursiveAction() {
        protected void realCompute() throws Exception {
            AsyncFib f = new AsyncFib(8);
            assertSame(f, f.fork());
            assertNull(f.get(LONG_DELAY_MS, MILLISECONDS));
            f.checkCompletedNormally();
        }};
    testInvokeOnPool(pool, a);
}
 
Example 37
Project: openjdk-jdk10   File: ForkJoinTask8Test.java   View source code 5 votes vote down vote up
public void testInvokeAllNullTask(ForkJoinPool pool) {
    RecursiveAction a = new CheckedRecursiveAction() {
        protected void realCompute() {
            AsyncFib nul = null;
            Runnable[] throwingActions = {
                () -> invokeAll(nul),
                () -> invokeAll(nul, nul),
                () -> invokeAll(new AsyncFib(8), new AsyncFib(9), nul),
                () -> invokeAll(new AsyncFib(8), nul, new AsyncFib(9)),
                () -> invokeAll(nul, new AsyncFib(8), new AsyncFib(9)),
            };
            assertThrows(NullPointerException.class, throwingActions);
        }};
    testInvokeOnPool(pool, a);
}
 
Example 38
Project: Lagerta   File: LeadImplFatUnitTest.java   View source code 5 votes vote down vote up
private void startConfiguredLead(LeadStateAssistant assistant, GapDetectionStrategy gapDetectionStrategy) {
    RuleTimeouts ruleTimeouts = new RuleTimeouts();
    Heartbeats heartbeats = new Heartbeats(ruleTimeouts.getHearbeatExpirationThreshold());

    proxyReconciler = new ProxyReconciler();
    lead = new LeadImpl(assistant, new ReadTransactions(), CommittedTransactions.createNotReady(), heartbeats,
            gapDetectionStrategy, proxyReconciler, ruleTimeouts);
    ForkJoinPool.commonPool().submit(() -> lead.execute());
}
 
Example 39
Project: otus_java_2017_10   File: Parallel.java   View source code 5 votes vote down vote up
static void parallel() {
//        System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "3");
        System.out.println(String.format("parallel() on %d threads. Available CPU: %d\n",
                ForkJoinPool.commonPool().getParallelism(), Runtime.getRuntime().availableProcessors()));

        int result = IntStream.range(0, 5)
                .parallel()
                .peek(it -> System.out.printf("Thread [%s] peek: %d\n", Thread.currentThread().getName(), it))
                .sum();
        System.out.println("sum: " + result);
    }
 
Example 40
Project: java-threading   File: Async.java   View source code 5 votes vote down vote up
private void onCompletedImpl(@NotNull Runnable continuation, boolean useExecutionContext) {
	Requires.notNull(continuation, "continuation");

	Executor executor = ForkJoinPool.commonPool();
	SynchronizationContext synchronizationContext = SynchronizationContext.getCurrent();
	if (synchronizationContext != null && synchronizationContext.getClass() != SynchronizationContext.class) {
		executor = synchronizationContext;
	}

	Runnable wrappedContinuation = useExecutionContext ? ExecutionContext.wrap(continuation) : continuation;
	executor.execute(wrappedContinuation);
}