Я считаю, что основной поток должен заканчиваться после подпотока. Но нижеприведенный код показывает, что процесс завершен до вывода "асинхронного конца". В чем причина? Кто-нибудь может объяснить? Thx.
import java.util.concurrent.CompletableFuture;
public class Test {
public static void main(String[] args) {
CompletableFuture.runAsync(() -> {
try {
System.out.println("async start");
Thread.sleep(3000);
System.out.println("async end");
} catch (InterruptedException e) {
e.printStackTrace();
}
});
System.out.println("main end");
}
}