### Question:
ServerContextImpl implements ServerContext { @Override public boolean asyncExecution(Callable<Void> callable) { return asyncExecution(callable, 0, TimeUnit.MILLISECONDS); } ServerContextImpl(String name, String prefix, int asyncThreads,
      int asyncMaxQueued, int schedulerThreads); @SuppressWarnings("unchecked") synchronized void start(); synchronized void stop(); synchronized MetricRegistry getMetricRegistry(); @Override Scheduled scheduleExecution(Callable<Void> callable,
      long firstExecutionDelay, long executionInterval, TimeUnit timeUnit); @Override boolean asyncExecution(Callable<Void> callable); @Override boolean asyncExecution(Callable<Void> callable, long executionDelay,
      TimeUnit timeUnit); @Override String createMetricKey(String component, String key); @Override synchronized void registerGauge(String key, Gauge gauge); @Override synchronized Timer registerTimer(String key); @Override synchronized Meter registerMeter(String key);  }### Answer:
@Test public void testAsyncExecution() throws Exception { ServerContextImpl impl = new ServerContextImpl("llama", "Server Context", 2, 2, 2); final AtomicInteger number = new AtomicInteger(0); int numTasks = 100; try { impl.start(); Callable<Void> task = new Callable<Void>() { @Override public Void call() throws Exception { number.incrementAndGet(); return null; } }; List<Callable<Void>> tasks = Collections.nCopies(numTasks, task); for(Callable<Void> c : tasks) { Assert.assertTrue(impl.asyncExecution(c)); } } finally { impl.stop(); } Assert.assertTrue(number.intValue() == numTasks); }