#377 Неопределенный порядок выполнения асинхронных задач
Что будет выведено на экран?
public class Main {
public static void main(String[] args) throws InterruptedException {
new Test().print();
}
}
class Test {
private Object object = new Object();
public void print() throws InterruptedException {
CompletableFuture.runAsync(() -> {
synchronized (object) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("1");
}
});
synchronized (object) {
System.out.println("2");
}
CompletableFuture.runAsync(() -> {
synchronized (object) {
System.out.println("3");
}
});
}
}
Разбор вопроса
Войди, чтобы начать диалог
Ментор ведёт диалог по текущему вопросу и учитывает предыдущие сообщения.
Войти
Доступно с Premium
Это лишь одно из решений, доступных с Premium. А ещё:
- 250+ продвинутых лекций
- 1300+ практических заданий
- 500+ решений задач с реальных собеседований
- Именные сертификаты Java Hub
- Расширенный доступ к AI-ментору