void execute() {
        int count = 3;
        CyclicBarrier cyclicBarrier = new CyclicBarrier(count + 1);
        ExecutorService threadPool = Executors.newFixedThreadPool(5);
        System.out.println("execute start ...");
        for (int i = 0; i < count; i++) {
            threadPool.submit(new MyTask(cyclicBarrier,"task"+ i ));
        }

        //threadPool.submit(new MyTask(cyclicBarrier, "last task"));
        threadPool.shutdown();//当线程池中的任务都执行完了，销毁掉线程池，如果不调用该方法，程序将一直运行下去。
        System.out.println("wait other task...");
        try {
            cyclicBarrier.await();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (BrokenBarrierException e) {
            e.printStackTrace();
        }

        System.out.println("execute finish ...");
    }