ExecutorService pipeline = ExecutorService.newSingleThreadExecutor();
FutureTask<String> step1 =
new FutureTask<String>(new Callable<String>() {
public String call() {
return "step1";
}});
executor.execute(step1); // execute single-step pipeline
step1.cancel(true); // interrupt the task