### Question:
RequestDispatcher extends AbstractExecutorService { @Override public void execute(Runnable command) { mTaskExecutor.execute(command); } RequestDispatcher(Executor callbackExecutor); @Override void shutdown(); void stopAllTasks(); @Override List<Runnable> shutdownNow(); @Override boolean isShutdown(); @Override boolean isTerminated(); @Override boolean awaitTermination(long timeout, TimeUnit unit); void submitResults(Runnable command); @Override Future<?> submit(Runnable task); @Override void execute(Runnable command); void runTask(Runnable runnable); @VisibleForTesting(otherwise = VisibleForTesting.NONE) static String createStackElementTagFor(Thread thread);  }### Answer:
@Test public void execute() throws InterruptedException { final CountDownLatch latch = new CountDownLatch(1); long current_tid = Thread.currentThread().getId(); final long[] dispatcher_tid = new long[1]; mDispatcher.execute(() -> { dispatcher_tid[0] = Thread.currentThread().getId(); latch.countDown(); }); latch.await(); assertNotEquals(dispatcher_tid[0], current_tid); }