首页javastream_parallelJava Stream - 如何检查并行Stream的线程名称

Java Stream - 如何检查并行Stream的线程名称

我们想知道如何检查并行Stream的线程名称。
import java.util.Arrays;
import java.util.List;

public class Main {

  public static void main(String[] args) throws Exception {
    List<String> strings = Arrays.asList("a1", "a2", "b1", "c2", "c1");

    strings
        .parallelStream()
        .filter(
            s -> {
              System.out.format("filter:  %s [%s]\n", s, Thread.currentThread()
                  .getName());
              return true;
            })
        .map(
            s -> {
              System.out.format("map:     %s [%s]\n", s, Thread.currentThread()
                  .getName());
              return s.toUpperCase();
            })
        .sorted(
            (s1, s2) -> {
              System.out.format("sort:    %s <> %s [%s]\n", s1, s2, Thread
                  .currentThread().getName());
              return s1.compareTo(s2);
            })
        .forEach(
            s -> System.out.format("forEach: %s [%s]\n", s, Thread
                .currentThread().getName()));
  }

}