public static ThreadPoolExecutor newFixedThreadPool(int corePoolSize) {
        return new ThreadPoolExecutor(corePoolSize,
            corePoolSize,
            0,
            TimeUnit.MILLISECONDS,
            new SynchronousQueue<Runnable>());
    }
@Test
    public void newFixedThreadPool3() throws Exception {
        BlockingQueue<Runnable> queue = new SynchronousQueue<Runnable>();
        RejectedExecutionHandler handler = new RejectedExecutionHandler() {
            @Override
            public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {

            }
        };
        ThreadFactory factory = new NamedThreadFactory("xxx");
        ThreadPoolExecutor executor = ThreadPoolUtils.newFixedThreadPool(10, queue, factory, handler);
        Assert.assertEquals(executor.getCorePoolSize(), 10);
        Assert.assertEquals(executor.getMaximumPoolSize(), 10);
        Assert.assertEquals(executor.getQueue(), queue);
        Assert.assertEquals(executor.getThreadFactory(), factory);
        Assert.assertEquals(executor.getRejectedExecutionHandler(), handler);
    }