Java. Многопоточность. Остановка потока. Обработка InterruptedException.
Vložit
- čas přidán 21. 08. 2024
- В этом видео продолжаем разбирать тонкости многопоточности в языке программирования Java. Говорим о том, как остановить поток, какую роль в этом играет исключение InterruptedException и как его обрабатывать.
Исходные коды
в начале:
github.com/Arh...
после переработки:
github.com/Arh...
Предыдущее видео:
• Java. Многопоточность....
Поддержать канал💰:
yoomoney.ru/to...
Группа в Telegram:
t.me/ArhiTutor...
#ArhiTutorialsJava #ityoutubersru
Спасибо, Сергей, в конце меня успокоил😊 Я думал, что я тупой из-за того, что до меня некоторые темы только с третьего раза доходят. Оказывается, это нормально😇
спасибо за урок и отдельное спасибо за мотивационную речь в конце урока... Буду сюда приходить , пока не наступит просветление.
Супер, хороший разбор. Картинка стала складываться.
Только зо одно слово из всего видео я готов был ставить лайк без колебаний, конечно так-же как и за семантику всего видео. Спасибо 🙂
привет из будущего)
благодаря этому видео остановка потоков стала намного понятнее!
Очень нравится, что монтируешь и рассказываешь цельно и упорядоченно, выбираешь легкие и простые словесные конструкции
Огромное спасибо за качественный урок и с наступающим Новым годом) Всех благ
Огромное спасибо! Надеюсь будут выходить новые видео!
Спасибо, учитель!
Мужик, спасибо. Я часами не мог понять, почему у меня при изменении переменной отвечающей за жизнь поток не умирает! Он и дальше жил! Я просто сделал паузу и все стало окей.
Да, я подписался, да ты мне помог за 3 минуты.
Снимайте видео про разработку в Android Studio у вас очень хорошо получается . Разные фишки этого приложения , как сделать таймер к примеру или что-то добавить. Успехов вам. Жду новые видео
Спасибо!
Крутяк
Очень хорошо объяснил. Читаю Java Concurrency in Practice. Вот нихрена там не понятно. Посмотрев это видео, понял некоторые моменты, которые до меня пытался донести Гетц. Но все равно не понимаю где, когда нужно ставить Thread.currentThread().interrupt(). И вообще, почему этот метод не сделан статичным, как например. wait() или sleep()?
Спасибо за урок. А будет что нибудь по андройду про многопоточность? А то где то читал что уже мало используют AsyncTask.
Да, в планах у меня такое есть. Сделаю, как руки дойдут.
Скажите пожалуйста, сколько всего здесь потоков создается? Main, worker и анонимный? В методе getTask флаг isInterrupted устанавливается для анонимного потока? Как об этом узнает поток worker?
Если не считать главный, то создается один поток. Флаг устанавливается для текущего потока, то есть для того, кто будет выполнять этот метод. А доставать Runnable из очереди и выполнять его метод run() будет worker.
Все равно программа некорректная, если основной поток выходит из ожидания раньше, чем все задачи будут выполнены, он прерывает программу недает выполнится поставленным задачам. Например если Thread.sleep(3000), а tasks 4. Или это нормально в рамках этой программы? Пытаюсь join() применить, пока не получается.
while (!queue.tasks.isEmpty())
{
try
{
Thread.currentThread().sleep(5000);;
} catch (InterruptedException e)
{
System.out.println("lol");
}
}
Добавив такое можно добится выполнения всех команд
будет concurecy?
В следующий раз, когда я доберусь до этой темы, будет видео по распараллеливанию алгоритма на несколько потоков.