ПОЛНАЯ ВЕРСИЯ ЭТОГО КУРСА: www.udemy.com/course/javarussia/?referralCode=A36A8387475CAFDC6776 ДЛЯ ЖИТЕЛЕЙ РФ: alfa.swiftbook.ru/courses/415 Плейлист с другими открытыми уроками: kzitem.info/door/PLAma_mKffTOTtGQEbqurDRoPwDEKzzZQA
@user-xz1zb5cw1k
5 жыл бұрын
Наиль, спасибо тебе большое за все труды.
@user-zr4mz8jb4b
5 жыл бұрын
Большое спасибо за Ваши труды! Очень интересно, доступно и познавательно!
@user-evgeniy64
3 жыл бұрын
Как всегда, единственный автор, которого я понимаю с первого раза.
@user-wo6bq7qc7m
3 жыл бұрын
Шикарное объяснение, спасибо огромное!
@alexandrugrubneac4199
5 жыл бұрын
volatile - не кэшируется, как говорил Наиль. И он объяснил зачем это делается. Я хочу добавить, что за счет того что данная переменная не кэшируется скорость работы программы падает. Не стоит злоупотреблять переменными volatile.
@jjkj8902
4 жыл бұрын
Минздрав предупреждает
@gleb_bro8710
3 жыл бұрын
А это разве не очевидно?
@LighterST
3 жыл бұрын
@@gleb_bro8710 нет
@blavikensbutcher
2 жыл бұрын
@@gleb_bro8710 нет
@1x9player54
Жыл бұрын
@@gleb_bro8710 нет
@learnrussianwithtanyavetto8571
3 жыл бұрын
спасибо за лекцию, всё четко и понятно!
@anjelomanoranjan3908
7 ай бұрын
Шикарно объяснил! Очень понятно и интересно! Спасибо!
@Roman-ey1bn
Жыл бұрын
Шикарно! Буквально на пальцах разъяснил то, что в книгах ну очень тяжело описано
@user-ti6yq5yb9d
5 жыл бұрын
Отличные уроки! Спасибо.
@mkblt3975
4 жыл бұрын
Спасибо, очень доступно объяснили!)
@bereal9464
3 жыл бұрын
давайте еще видео пожалуйста по продвинутой java ваши уроки просто божественный дар
@alishevN
3 жыл бұрын
Все видео в курсе «Продвинутая Java”. Ссылка в описании.
@user-nh4yp4fi9m
Жыл бұрын
Спасибо за труд 👍
@iyustas
5 жыл бұрын
Пожалуйста, продолжай кусы по java! Готов платить за них на udemy. Спасибо тебе большое.
@strash1692
3 жыл бұрын
Как я понимаю, пример, который должен проиллюстрировать необходимость применения volatile, не подходящий. Т.к. волатайл нужен для разделяемых ресурсов между разными потоками. А в данном примере с переменной всегда работает только 1 поток. Другой же поток обращается к ней не на прямую, а через сеттер родного потока. Кто-нибудь может пояснить?
@strash1692
3 жыл бұрын
Сам нашёл ответ на свой вопрос. Метод shoutdown хоть и объявлен в классе нового потока, но всё равно вызывается в основном потоке и является частью основного потока. Поэтому действительно, использование volatile оправдано и пример корректный.
@yanggregory2036
2 жыл бұрын
Автору респект!
@maksimvolkov8892
4 жыл бұрын
Прекрасное видео
@airguy5964
Жыл бұрын
Спасибо, отличное объяснение
@olexiypysarenko8090
5 жыл бұрын
Огромное спасибо!!!
@Andrzej3935
2 жыл бұрын
Спасибо, мастер
@Nukakxotiti
3 жыл бұрын
Лучший, просто лучший! А я то думал что так как изменение переменной логического типа атомарное действие volatile для boolean не нужен
@GriNAME
5 жыл бұрын
Наиль у тебя шикарные уроки! Я совершенно по другому стал воспринимать андроид разработку, после курса джавы для новичков. Спасибо большое! Скажи пожалуйста а по котлину ты не планируешь записывать уроки? Очень нравится этот язык и я бы без раздумий купил твой курс по котлину)) хочется стать гуру в этом языке и для андроида и в целом
@alishevN
5 жыл бұрын
Спасибо! Пока не планирую, может в будущем :)
@user-rq5wx6pf4k
8 ай бұрын
все максимально понятно донесено)
@kostyagusto5109
5 жыл бұрын
Эх, я то надеялся что решил полностью выложить курс здесь(
@timohavol8032
Жыл бұрын
Спасибо!
@andretiidook7022
5 жыл бұрын
Немного непонятно как все таки в данной программе Main поток меняет переменную? Он же вызывает просто метод, а сам метод находится в другом потоке - потоке, которому принадлежит переменная. Вот это можно пояснить?
@VitaliyZlobin
5 жыл бұрын
Главный поток останавливается в ожидании ввода данных, после нажатия Enter ввод данных завершается и главный поток переходит к следующему шагу - вызову метода shutdown, который меняет значение переменной running на false, что служит основанием для завершения потока MyThread.
@caffeinejavacode1475
3 жыл бұрын
насчет MainMemory насколько я знаю stack у каждого потока свой, значит значения переменой у потоков будут все равно разные.
@SvetlanaCapri
Жыл бұрын
Спасибо
@user-kc2yn7gb6h
2 жыл бұрын
Красава!!!
@sh4rk717
4 жыл бұрын
Нажимаю Enter, появляется пустая строка и дальше идут слова Hello. Нажимаю Enter второй раз и программа завершается. Но есть и редкие случаи когда завершается с одного нажатия Enter. Объясните, пожалуйста, почему так?
@Folkem
4 жыл бұрын
Думаю, это как раз проблема в когерентности кэшей, что тут объясняется. Пробуй пометить volatile переменную, как в уроке.
@ebazy
5 жыл бұрын
Не пойму, почему у канала с каждым видео меньше просмотров... шикарные же видео.
@igothigh
2 жыл бұрын
потому что большинство людей к 10-20 видео понимают, что программирование это не их судьба. лично я дошел до "продвинутой джавы" полгода назад и начал жестко тупить. заныл и бросил обучение, а месяц назад вернулся и теперь идет попроще. надеюсь дойду до конца обучения на этот раз.
@araellaryan9405
4 жыл бұрын
Спасибо за уроки. А есть урок про Динамический Прокси?
@alishevN
4 жыл бұрын
нет
@user-fy3iv9dp7g
Жыл бұрын
Не совсем понятно зачем это надо, если есть Synchronized? В чём разница?
@konstantinmatushenko5831
5 жыл бұрын
Будет ли видео по github?
@alishevN
5 жыл бұрын
Будет целый курс в течение месяца, следите за обновлениями на канале!
@alexandralban5682
5 жыл бұрын
Поддерживаю
@ivanshurkov1768
5 жыл бұрын
Где курс то целый обещанный 3 месяца прошло
@MrUmedd
5 жыл бұрын
@@ivanshurkov1768 никогда программисты не сдавали или не делали свои проекты во время ) это один из случай))
@user-yf2cp3hx3g
2 жыл бұрын
прохожу курс по юдеми мне очень сложна понять многопточность я делаю все чтобы понять.Как всегда хочется бросить 😭😭😭
@sLasHee85
4 жыл бұрын
Будут ли ещё видео Продвинутая Java? Многопоточность начали и на волатайл закончилось. Жаль...
@alishevN
4 жыл бұрын
Полный курс "Продвинутая Java" находится здесь: www.udemy.com/javarussia/?couponCode=ADVANCED_JAVARUSSIA
@ladamira3477
Жыл бұрын
У меня новый ноут. у меня код не срабатывает иногда. бывает со 2-го, 3-го раза. более того добавила в код volatile и тоже не срабатывает с первого раза))). код вроде правильно переписала
@user-gs1df1fp7p
11 ай бұрын
Странно. Вот пробал воспроизвести ситуацию на ryzen 5 1500x - на нем как раз кеш делиться попарно по 8 мб на 2 ядра - и он не связан между собой (именно разделенный). Запустил аж 24 потока - но даже в такой ситуации все 24 потока остановились.
@morozofbony
9 ай бұрын
Попробуй убрать из цикла while операцию sleep. Пусть пустой цикл крутится.
@user-oh4sr7um8j
2 жыл бұрын
volatile не работает, поток завершает работу после второго нажатия Enter или третего
@mabutatv
2 жыл бұрын
то же самое
@xxxivancionx6503
3 жыл бұрын
пробовал у себя запустить такой же код, и без слова volatile он работает через раз
@---bs5rb
4 жыл бұрын
Волотильность)
@evgeniyt3171
3 жыл бұрын
Видео начинается на 14:15 минуте
@flatronkujo
4 жыл бұрын
было еще проще написать так:(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); } }
@NiflheimForever
3 жыл бұрын
Нет, не правильно. Так все потоки прекращаются. Например, если в потоке main после myThread.shutdown(); написаны еще команды то они не будут выполнятся, из-за System.exit(0); А в случае описанном в уроке, прекратится только один поток, и в потоке main продолжатся выполнятся другие команды.
@aajanavv__
Жыл бұрын
Тыща лайков
@user-kd9ex4yh7d
4 жыл бұрын
Интересно. Но вы бы хоть шрифт сделайте побольше, ни слова разглядеть невозможно.
Пікірлер: 71