ПОЛНАЯ ВЕРСИЯ ЭТОГО КУРСА: www.udemy.com/course/javarussia/?referralCode=A36A8387475CAFDC6776 ДЛЯ ЖИТЕЛЕЙ РФ: alfa.swiftbook.ru/courses/415 Плейлист с другими открытыми уроками: kzbin.info/aero/PLAma_mKffTOTtGQEbqurDRoPwDEKzzZQA
@user-evgeniy643 жыл бұрын
Как всегда, единственный автор, которого я понимаю с первого раза.
@alexandrugrubneac41996 жыл бұрын
volatile - не кэшируется, как говорил Наиль. И он объяснил зачем это делается. Я хочу добавить, что за счет того что данная переменная не кэшируется скорость работы программы падает. Не стоит злоупотреблять переменными volatile.
@jjkj89025 жыл бұрын
Минздрав предупреждает
@gleb_bro87104 жыл бұрын
А это разве не очевидно?
@LighterST3 жыл бұрын
@@gleb_bro8710 нет
@blavikensbutcher2 жыл бұрын
@@gleb_bro8710 нет
@1x9player542 жыл бұрын
@@gleb_bro8710 нет
@Индахаус5 жыл бұрын
Наиль, спасибо тебе большое за все труды.
@LAZIO14 Жыл бұрын
Шикарно объяснил! Очень понятно и интересно! Спасибо!
@ВикторГусев-н5т5 жыл бұрын
Большое спасибо за Ваши труды! Очень интересно, доступно и познавательно!
@bereal94643 жыл бұрын
давайте еще видео пожалуйста по продвинутой java ваши уроки просто божественный дар
@alishevN3 жыл бұрын
Все видео в курсе «Продвинутая Java”. Ссылка в описании.
@strash16923 жыл бұрын
Как я понимаю, пример, который должен проиллюстрировать необходимость применения volatile, не подходящий. Т.к. волатайл нужен для разделяемых ресурсов между разными потоками. А в данном примере с переменной всегда работает только 1 поток. Другой же поток обращается к ней не на прямую, а через сеттер родного потока. Кто-нибудь может пояснить?
@strash16923 жыл бұрын
Сам нашёл ответ на свой вопрос. Метод shoutdown хоть и объявлен в классе нового потока, но всё равно вызывается в основном потоке и является частью основного потока. Поэтому действительно, использование volatile оправдано и пример корректный.
@Roman-ey1bn Жыл бұрын
Шикарно! Буквально на пальцах разъяснил то, что в книгах ну очень тяжело описано
@iyustas6 жыл бұрын
Пожалуйста, продолжай кусы по java! Готов платить за них на udemy. Спасибо тебе большое.
@АлександрНазаров-в2э9н4 жыл бұрын
Шикарное объяснение, спасибо огромное!
@yanggregory20362 жыл бұрын
Автору респект!
@learnrussianwithtanyavetto85713 жыл бұрын
спасибо за лекцию, всё четко и понятно!
@mkblt39755 жыл бұрын
Спасибо, очень доступно объяснили!)
@ЛюбовьДмитриева-й6ф Жыл бұрын
все максимально понятно донесено)
@ДаниярКаби2 жыл бұрын
Спасибо за труд 👍
@kostyagusto51096 жыл бұрын
Эх, я то надеялся что решил полностью выложить курс здесь(
@andretiidook70226 жыл бұрын
Немного непонятно как все таки в данной программе Main поток меняет переменную? Он же вызывает просто метод, а сам метод находится в другом потоке - потоке, которому принадлежит переменная. Вот это можно пояснить?
@VitaliyZlobin5 жыл бұрын
Главный поток останавливается в ожидании ввода данных, после нажатия Enter ввод данных завершается и главный поток переходит к следующему шагу - вызову метода shutdown, который меняет значение переменной running на false, что служит основанием для завершения потока MyThread.
@caffeinejavacode14754 жыл бұрын
насчет MainMemory насколько я знаю stack у каждого потока свой, значит значения переменой у потоков будут все равно разные.
@ladamira3477 Жыл бұрын
У меня новый ноут. у меня код не срабатывает иногда. бывает со 2-го, 3-го раза. более того добавила в код volatile и тоже не срабатывает с первого раза))). код вроде правильно переписала
@GriNAME6 жыл бұрын
Наиль у тебя шикарные уроки! Я совершенно по другому стал воспринимать андроид разработку, после курса джавы для новичков. Спасибо большое! Скажи пожалуйста а по котлину ты не планируешь записывать уроки? Очень нравится этот язык и я бы без раздумий купил твой курс по котлину)) хочется стать гуру в этом языке и для андроида и в целом
@alishevN6 жыл бұрын
Спасибо! Пока не планирую, может в будущем :)
@ebazy5 жыл бұрын
Не пойму, почему у канала с каждым видео меньше просмотров... шикарные же видео.
@igothigh3 жыл бұрын
потому что большинство людей к 10-20 видео понимают, что программирование это не их судьба. лично я дошел до "продвинутой джавы" полгода назад и начал жестко тупить. заныл и бросил обучение, а месяц назад вернулся и теперь идет попроще. надеюсь дойду до конца обучения на этот раз.
@СергейЕмельянов-е9з6 жыл бұрын
Отличные уроки! Спасибо.
@Nukakxotiti4 жыл бұрын
Лучший, просто лучший! А я то думал что так как изменение переменной логического типа атомарное действие volatile для boolean не нужен
@Andrzej39353 жыл бұрын
Спасибо, мастер
@maksimvolkov88925 жыл бұрын
Прекрасное видео
@sh4rk7175 жыл бұрын
Нажимаю Enter, появляется пустая строка и дальше идут слова Hello. Нажимаю Enter второй раз и программа завершается. Но есть и редкие случаи когда завершается с одного нажатия Enter. Объясните, пожалуйста, почему так?
@Mespifo5 жыл бұрын
Думаю, это как раз проблема в когерентности кэшей, что тут объясняется. Пробуй пометить volatile переменную, как в уроке.
@airguy59642 жыл бұрын
Спасибо, отличное объяснение
@АлександрКучеренко-ш2ю3 жыл бұрын
volatile не работает, поток завершает работу после второго нажатия Enter или третего
@mabutatv2 жыл бұрын
то же самое
@fernandaeschallots24857 ай бұрын
Thanks a lot!
@Игорь-ц2б8в2 жыл бұрын
Не совсем понятно зачем это надо, если есть Synchronized? В чём разница?
@AlexGomez-y4x Жыл бұрын
Странно. Вот пробал воспроизвести ситуацию на ryzen 5 1500x - на нем как раз кеш делиться попарно по 8 мб на 2 ядра - и он не связан между собой (именно разделенный). Запустил аж 24 потока - но даже в такой ситуации все 24 потока остановились.
@morozofbony Жыл бұрын
Попробуй убрать из цикла while операцию sleep. Пусть пустой цикл крутится.
@АлишерТоктомушев-щ7л2 жыл бұрын
прохожу курс по юдеми мне очень сложна понять многопточность я делаю все чтобы понять.Как всегда хочется бросить 😭😭😭
@araellaryan94055 жыл бұрын
Спасибо за уроки. А есть урок про Динамический Прокси?
@alishevN5 жыл бұрын
нет
@timohavol80322 жыл бұрын
Спасибо!
@olexiypysarenko80906 жыл бұрын
Огромное спасибо!!!
@СергейОсипов-ш8в3 жыл бұрын
Красава!!!
@konstantinmatushenko58316 жыл бұрын
Будет ли видео по github?
@alishevN6 жыл бұрын
Будет целый курс в течение месяца, следите за обновлениями на канале!
@alexandralban56826 жыл бұрын
Поддерживаю
@ivanshurkov17686 жыл бұрын
Где курс то целый обещанный 3 месяца прошло
@umed_tech6 жыл бұрын
@@ivanshurkov1768 никогда программисты не сдавали или не делали свои проекты во время ) это один из случай))
@sLasHee855 жыл бұрын
Будут ли ещё видео Продвинутая Java? Многопоточность начали и на волатайл закончилось. Жаль...
@alishevN5 жыл бұрын
Полный курс "Продвинутая Java" находится здесь: www.udemy.com/javarussia/?couponCode=ADVANCED_JAVARUSSIA
@SvetlanaCapri2 жыл бұрын
Спасибо
@xxxivancionx65034 жыл бұрын
пробовал у себя запустить такой же код, и без слова volatile он работает через раз
@flatronkujo5 жыл бұрын
было еще проще написать так:(6:33-9:13) package PackageBigThread; import java.util.Scanner; public class ClassThread1 { public static void main(String[] args) { MyThread myThread = new MyThread(); myThread.start(); Scanner scn = new Scanner(System.in); scn.nextLine(); myThread.shutdown(); } } class MyThread extends Thread{ public void run() { while(true) { System.out.println("Hello"); try { Thread.sleep(100); } catch (InterruptedException e) { } } } public void shutdown(){ System.exit(0); } }
@NiflheimForever4 жыл бұрын
Нет, не правильно. Так все потоки прекращаются. Например, если в потоке main после myThread.shutdown(); написаны еще команды то они не будут выполнятся, из-за System.exit(0); А в случае описанном в уроке, прекратится только один поток, и в потоке main продолжатся выполнятся другие команды.
@evgeniyt31714 жыл бұрын
Видео начинается на 14:15 минуте
@---bs5rb5 жыл бұрын
Волотильность)
@ИванКолегов-ь5м5 жыл бұрын
Интересно. Но вы бы хоть шрифт сделайте побольше, ни слова разглядеть невозможно.