public class Main {

    private static ThreadPoolExecutor poolTest = new ThreadPoolExecutor(3, 3, 10, TimeUnit.MINUTES, new LinkedBlockingQueue<>(50));

    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            poolTest.execute(new TestRunnable("test-----" + i));
        }
    }
}

public class TestRunnable implements Runnable {


    private String threadName;

    public TestRunnable(String threadName) {
        this.threadName = threadName;
    }

    @Override
    public void run() {
        Thread.currentThread().setName(threadName);
        System.out.println(Thread.currentThread().getName()+"---"+Thread.currentThread().getId());
    }
}

@@ -86,17 +86,17 @@
 xecutor(
-3
+2
 , 3, 10,
@@ -292,24 +292,24 @@
 ---%22 + i));%0A
-
         %7D%0A  
@@ -306,16 +306,468 @@
       %7D%0A
+//        poolTest.shutdown();%0A%0A        for (int i = 10; i %3C 20; i++) %7B%0A            poolTest.execute(new TestRunnable(%22test-----%22 + i));%0A        %7D%0A        System.out.println(%22%E6%B5%8B%E8%AF%95%E7%BA%BF%E7%A8%8B%E6%B1%A0%22);%0A%0A        long begin = System.currentTimeMillis();%0A        while (true) %7B%0A            if (System.currentTimeMillis() - begin %3E 2000) %7B%0A                System.out.println(%22%E4%B8%AD%E6%96%AD%E5%BE%AA%E7%8E%AF%22);%0A                break;%0A            %7D%0A        %7D%0A%0A        System.out.println(%22%E6%B5%8B%E8%AF%95%E7%BA%BF%E7%A8%8B%E6%B1%A0%E5%92%8C%E4%B8%AD%E6%96%AD%E5%BE%AA%E7%8E%AF%22);%0A
     %7D%0A%7D%0A

Update ThreadPool.java