Go Concurrency Patterns: Pipelines and cancellation
Cool. Can the concurrency guru's out there tell me what is the difference between the "Go Concurrency Pattern" and the Java SingleThreadExecutor? (http://docs.oracle.com/javase/6/docs/api/java/util/concurren...)  ExecutorService pipeline = ExecutorService.newSingleThreadExecutor();

  FutureTask step1 =
       new FutureTask(new Callable() {
         public String call() {
           return "step1";
  }});

  executor.execute(step1); // execute single-step pipeline
  
  step1.cancel(true); // interrupt the task