Java 8 및 이전 버전에서 ForkJoinPool의 클래스 로더는 ForkJoinPool을 호출한 상위 스레드에서 상속되었을 수 있습니다. 클래스 로더 상속으로 인해 메모리 누수 문제가 발생할 수 있습니다. Java 9부터는 ForkJoinPool 클래스 로더가 더 이상 호출 스레드에서 클래스 로더를 상속하지 않습니다. 애플리케이션이 다중 스레드 환경에서 실행 중인 경우 스레드 컨텍스트 클래스 로더 전파와 관련된 동작에 차이가 발생할 수 있습니다.
이 규칙은 애플리케이션당 한 번 플래그 지정합니다. 이 규칙은 하위 클래스에 대한 호출을 포함하여 다음 메소드 중 하나를 호출하는 애플리케이션을 플래그 지정합니다.
java.util.concurrent.CompletableFuture.runAsync(Runnable runnable)java.util.concurrent.CompletableFuture.thenRunAsync(Runnable runnable)java.util.concurrent.ForkJoinPool.commonPool()java.util.concurrent.ForkJoinTask.fork()java.util.concurrent.ForkJoinTask.invokeAll()참고: 이 동작 변경은 MicroProfile 컨텍스트 전파, Jakarta/Java EE 동시성 또는 기타 애플리케이션별 수단과 같은 스레드 컨텍스트 클래스 로더의 전파를 아직 정렬하지 않은 경우에만 적용됩니다.
Java SE 9 변경사항에 대한 자세한 정보는 Java 9 릴리스 정보를 참조하십시오.