Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.xqcx.boss;
- import lombok.extern.slf4j.Slf4j;
- import java.util.Date;
- import java.util.concurrent.ForkJoinPool;
- import java.util.concurrent.ForkJoinTask;
- import java.util.concurrent.RecursiveTask;
- /**
- * Created by wangzp on 2017/6/10.
- * Copyright (c) 2017, zhongping.wang@xqchuxing.com All Rights Reserved.
- * Desc: (forkjoinPool įŽĄį). <br/>
- */
- @Slf4j
- public final class ForkJoinPoolManager {
- private static final ForkJoinPool pool;
- static {
- pool = new ForkJoinPool(Runtime.getRuntime().availableProcessors() * 2);
- }
- public static ForkJoinPool getPool () {
- return pool;
- }
- public static void main(String[] args) {
- Long result = ForkJoinPoolManager.getPool().invoke(new RecursiveTask<Long> () {
- @Override
- protected Long compute() {
- ForkJoinTask<Long> t1 = new RecursiveTask<Long>() {
- @Override
- protected Long compute() {
- log.info("t1:" + Thread.currentThread().getName());
- log.info("t1 start:" + (new Date().toLocaleString()));
- long num = 0;
- for (int i = 0; i< 100000000; i ++) {
- num += i;
- }
- log.info("t1 end:" + (new Date().toLocaleString()));
- return num;
- }
- }.fork();
- ForkJoinTask<Long> t2 = new RecursiveTask<Long>() {
- @Override
- protected Long compute() {
- log.info("t2:" + Thread.currentThread().getName());
- log.info("t2 start:" + (new Date().toLocaleString()));
- long num = 0;
- for (int i = 0; i< 100; i ++) {
- num += i;
- }
- log.info("t2 end:" + (new Date().toLocaleString()));
- return num;
- }
- }.fork();
- return t1.join() + t2.join();
- }
- });
- System.out.println(result);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement