### Question:
TunnelServer { public void shutdown() { started = false; closeClosable(this.stream); closeClosable(this.connection); zkLock.unlock(); zkLock.close(); } TunnelServer(SubscribeConfig config); void start(); void shutdown(); String getServerId();  }### Answer:
@Test public void test_threadPool() { int total = 4; ThreadPoolExecutor executor = new ThreadPoolExecutor(total, total, 60, TimeUnit.SECONDS, new ArrayBlockingQueue<>(100)); for (int i = 0; i < total; i++) { executor.submit(new Task(i)); } try { executor.awaitTermination(1, TimeUnit.SECONDS); } catch (Exception e) { } stopped = true; executor.shutdown(); }