JavaRush/Курсы/Java Multithreading/Подготовка к собеседованию 8 уровень

Подготовка к собеседованию 8 уровень

Открыта

— Привет, Амиго!

Вопросы к собеседованиям
1 Какие приоритеты нитей бывают?
2 Можно ли остановить нить, снизив ее приоритет до 0?
3 Зачем нужен класс ThreadGroup?
4 В какой группе нитей состоит main-thread?
5 Что такое паттерн ThreadPool?
6 Зачем нужен класс ThreadPoolExecutor?
7 Сколько способов создать нить вы знаете? (Thread, Runnable, Callable<T>)
8 Для чего используется класс Future?
9 В чем преимущества Callable над Runnable?
10 Можно ли отменить выполнение задачи, если использовать класс Future?
Комментарии (15)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
13 августа 2025, 14:46
murtagh
Уровень 46
8 июля 2023, 13:58
Константин
Уровень 51
7 февраля 2023, 09:03
DanielCEO в BicycleInventionAcad
16 февраля 2023, 01:54
G QA Automation Engineer Expert
12 января 2023, 17:07
Сделайте интерактивные опросы, как в начале первого модуля.
Druha
Уровень 31
8 января 2023, 19:16
4 question:
public class Test {
    public static void main(String[] args) {
        ThreadGroup tg = Thread.currentThread().getThreadGroup();
        System.out.println(tg);
    }
}
// output:
java.lang.ThreadGroup[name=main,maxpri=10]
Саня
Уровень 38
22 ноября 2021, 16:39
1 Какие приоритеты нитей бывают? От 1 (минимальный) до 10 (максимальный); нормальный -- 5 2 Можно ли остановить нить, снизив ее приоритет до 0? Нет, нельзя. И кстати, до 0 не снизить, минимум 1 3 Зачем нужен класс ThreadGroup? Для того, чтобы производить групповые операции над набором нитей 4 В какой группе нитей состоит main-thread? main 5 Что такое паттерн ThreadPool? Это переиспользование нитей, вместо создания каждый раз новых (делать новые -- дорого для производительности) 6 Зачем нужен класс ThreadPoolExecutor? Чтобы раздавать задачи нитям из ThreadPool-а 7 Сколько способов создать нить вы знаете? (Thread, Runnable, Callable<T>) (предполагается, что речь идёт о создании объекта класса Thread) Либо напрямую, передав в конструктор Runnable, либо унаследовавшись от Thread, либо фабричным способом (например, при создании экзекъютора с помощью Executors, происходит создание нитей для пула) 8 Для чего используется класс Future? Для получения результата асинхронного вычисления. Future позволяет проверить, готов ли результат и получить его, если готов 9 В чем преимущества Callable над Runnable? Возможность вернуть результат и возможность кинуть исключение 10 Можно ли отменить выполнение задачи, если использовать класс Future? Да, но только если задача ещё не начата. Вот пример:
ExecutorService executorService = Executors.newFixedThreadPool(1);
executorService.submit(()->{
    try {Thread.sleep(500);}
    catch (InterruptedException ignored){}
});
Future<?> future = executorService.submit(()->System.out.println("I was not cancelled"));
future.cancel(true);
executorService.shutdown();
В этом примере можно даже начатую первую задачу прервать, пока в ней выполняется Thread.sleep -- но такая возможность уже зависит от реализации Future
Роман
Уровень 31
16 мая 2021, 19:58
Ничего, что Future<V> это интерфейс, а не класс?
ИльяBackend Developer в СберТех
7 января 2021, 14:05
В чем прикол пятого вопроса, если реализация этого паттерна написана в стандартной библиотеки?
Артём Уколов
Уровень 38
9 октября 2020, 21:48
В кои-то веки вопросы на которые можно с ходу ответить.
Елена Попова
Уровень 41
3 августа 2020, 11:31
https://javarush.com/groups/posts/1785-urovenjh-28-otvetih-na-voprosih-k-sobesedovaniju-po-teme-urovnja
13 марта 2021, 17:51