@Override
    public int curThreadNum() {
        return (int)curThreadNum.sum();
    }
@Test
    public void testStatisticLongAdder() throws InterruptedException {
        AtomicInteger atomicInteger = new AtomicInteger(0);
        StatisticNode statisticNode = new StatisticNode();
        ExecutorService bizEs1 = new ThreadPoolExecutor(THREAD_COUNT, THREAD_COUNT,
                0L, TimeUnit.MILLISECONDS,
                new LinkedBlockingQueue<Runnable>());
        ExecutorService bizEs2 = new ThreadPoolExecutor(THREAD_COUNT, THREAD_COUNT,
                0L, TimeUnit.MILLISECONDS,
                new LinkedBlockingQueue<Runnable>());
        int taskCount = 100;
        for (int i = 0; i < taskCount; i++) {
            int op = i % 2;
            bizEs2.submit(new StatisticAtomicIntegerTask(atomicInteger, op, i));
            bizEs1.submit(new StatisticLongAdderTask(statisticNode, op, i));
        }
        Thread.sleep(5000);

        log("LongAdder totalCost : " + StatisticLongAdderTask.totalCost() + "ms");
        log("AtomicInteger totalCost : " + StatisticAtomicIntegerTask.totalCost() + "ms");
        Assert.assertEquals(statisticNode.curThreadNum(), atomicInteger.get());


    }