Продвинутая Java: Ключевое слово volatile

Sdílet
Vložit
  • čas přidán 21. 08. 2024
  • ПОЛНАЯ ВЕРСИЯ КУРСА: swiftbook.org/...
    Реклама и сотрудничество: alishev.neil@gmail.com

Komentáře • 72

  • @alishevN
    @alishevN  Před 6 lety +1

    ПОЛНАЯ ВЕРСИЯ ЭТОГО КУРСА: www.udemy.com/course/javarussia/?referralCode=A36A8387475CAFDC6776
    ДЛЯ ЖИТЕЛЕЙ РФ: alfa.swiftbook.ru/courses/415
    Плейлист с другими открытыми уроками: czcams.com/play/PLAma_mKffTOTtGQEbqurDRoPwDEKzzZQA.html

  • @user-evgeniy64
    @user-evgeniy64 Před 3 lety +11

    Как всегда, единственный автор, которого я понимаю с первого раза.

  • @alexandrugrubneac4199
    @alexandrugrubneac4199 Před 6 lety +43

    volatile - не кэшируется, как говорил Наиль. И он объяснил зачем это делается. Я хочу добавить, что за счет того что данная переменная не кэшируется скорость работы программы падает. Не стоит злоупотреблять переменными volatile.

  • @user-xz1zb5cw1k
    @user-xz1zb5cw1k Před 5 lety +6

    Наиль, спасибо тебе большое за все труды.

  • @anjelomanoranjan
    @anjelomanoranjan Před 10 měsíci +1

    Шикарно объяснил! Очень понятно и интересно! Спасибо!

  • @user-zr4mz8jb4b
    @user-zr4mz8jb4b Před 5 lety +4

    Большое спасибо за Ваши труды! Очень интересно, доступно и познавательно!

  • @bereal9464
    @bereal9464 Před 3 lety +1

    давайте еще видео пожалуйста по продвинутой java
    ваши уроки просто божественный дар

    • @alishevN
      @alishevN  Před 3 lety +1

      Все видео в курсе «Продвинутая Java”. Ссылка в описании.

  • @Roman-ey1bn
    @Roman-ey1bn Před rokem

    Шикарно! Буквально на пальцах разъяснил то, что в книгах ну очень тяжело описано

  • @strash1692
    @strash1692 Před 3 lety +6

    Как я понимаю, пример, который должен проиллюстрировать необходимость применения volatile, не подходящий. Т.к. волатайл нужен для разделяемых ресурсов между разными потоками. А в данном примере с переменной всегда работает только 1 поток. Другой же поток обращается к ней не на прямую, а через сеттер родного потока. Кто-нибудь может пояснить?

    • @strash1692
      @strash1692 Před 3 lety +8

      Сам нашёл ответ на свой вопрос. Метод shoutdown хоть и объявлен в классе нового потока, но всё равно вызывается в основном потоке и является частью основного потока. Поэтому действительно, использование volatile оправдано и пример корректный.

  • @iyustas
    @iyustas Před 5 lety +6

    Пожалуйста, продолжай кусы по java! Готов платить за них на udemy. Спасибо тебе большое.

  • @user-wo6bq7qc7m
    @user-wo6bq7qc7m Před 4 lety +1

    Шикарное объяснение, спасибо огромное!

  • @learnrussianwithtanyavetto8571

    спасибо за лекцию, всё четко и понятно!

  • @mkblt3975
    @mkblt3975 Před 4 lety +1

    Спасибо, очень доступно объяснили!)

  • @yanggregory2036
    @yanggregory2036 Před 2 lety

    Автору респект!

  • @GriNAME
    @GriNAME Před 6 lety +4

    Наиль у тебя шикарные уроки! Я совершенно по другому стал воспринимать андроид разработку, после курса джавы для новичков. Спасибо большое! Скажи пожалуйста а по котлину ты не планируешь записывать уроки? Очень нравится этот язык и я бы без раздумий купил твой курс по котлину)) хочется стать гуру в этом языке и для андроида и в целом

    • @alishevN
      @alishevN  Před 6 lety

      Спасибо!
      Пока не планирую, может в будущем :)

  • @ebazy
    @ebazy Před 5 lety +7

    Не пойму, почему у канала с каждым видео меньше просмотров... шикарные же видео.

    • @igothigh
      @igothigh Před 2 lety +3

      потому что большинство людей к 10-20 видео понимают, что программирование это не их судьба. лично я дошел до "продвинутой джавы" полгода назад и начал жестко тупить. заныл и бросил обучение, а месяц назад вернулся и теперь идет попроще. надеюсь дойду до конца обучения на этот раз.

  • @user-rq5wx6pf4k
    @user-rq5wx6pf4k Před 11 měsíci

    все максимально понятно донесено)

  • @user-nh4yp4fi9m
    @user-nh4yp4fi9m Před 2 lety

    Спасибо за труд 👍

  • @kostyagusto5109
    @kostyagusto5109 Před 6 lety +3

    Эх, я то надеялся что решил полностью выложить курс здесь(

  • @user-ti6yq5yb9d
    @user-ti6yq5yb9d Před 6 lety

    Отличные уроки! Спасибо.

  • @caffeinejavacode1475
    @caffeinejavacode1475 Před 3 lety +1

    насчет MainMemory
    насколько я знаю stack у каждого потока свой, значит значения переменой у потоков будут все равно разные.

  • @maksimvolkov8892
    @maksimvolkov8892 Před 4 lety +1

    Прекрасное видео

  • @Nukakxotiti
    @Nukakxotiti Před 3 lety

    Лучший, просто лучший! А я то думал что так как изменение переменной логического типа атомарное действие volatile для boolean не нужен

  • @airguy5964
    @airguy5964 Před 2 lety

    Спасибо, отличное объяснение

  • @Andrzej3935
    @Andrzej3935 Před 3 lety

    Спасибо, мастер

  • @fernandaeschallots2485
    @fernandaeschallots2485 Před 2 měsíci

    Thanks a lot!

  • @andretiidook7022
    @andretiidook7022 Před 5 lety +2

    Немного непонятно как все таки в данной программе Main поток меняет переменную? Он же вызывает просто метод, а сам метод находится в другом потоке - потоке, которому принадлежит переменная. Вот это можно пояснить?

    • @VitaliyZlobin
      @VitaliyZlobin Před 5 lety +1

      Главный поток останавливается в ожидании ввода данных, после нажатия Enter ввод данных завершается и главный поток переходит к следующему шагу - вызову метода shutdown, который меняет значение переменной running на false, что служит основанием для завершения потока MyThread.

  • @olexiypysarenko8090
    @olexiypysarenko8090 Před 6 lety

    Огромное спасибо!!!

  • @user-oh4sr7um8j
    @user-oh4sr7um8j Před 2 lety +1

    volatile не работает, поток завершает работу после второго нажатия Enter или третего

  • @timohavol8032
    @timohavol8032 Před 2 lety

    Спасибо!

  • @user-kc2yn7gb6h
    @user-kc2yn7gb6h Před 2 lety

    Красава!!!

  • @user-gs1df1fp7p
    @user-gs1df1fp7p Před rokem

    Странно. Вот пробал воспроизвести ситуацию на ryzen 5 1500x - на нем как раз кеш делиться попарно по 8 мб на 2 ядра - и он не связан между собой (именно разделенный). Запустил аж 24 потока - но даже в такой ситуации все 24 потока остановились.

    • @morozofbony
      @morozofbony Před rokem

      Попробуй убрать из цикла while операцию sleep. Пусть пустой цикл крутится.

  • @ladamira3477
    @ladamira3477 Před rokem +1

    У меня новый ноут. у меня код не срабатывает иногда. бывает со 2-го, 3-го раза. более того добавила в код volatile и тоже не срабатывает с первого раза))). код вроде правильно переписала

  • @sh4rk717
    @sh4rk717 Před 4 lety +1

    Нажимаю Enter, появляется пустая строка и дальше идут слова Hello. Нажимаю Enter второй раз и программа завершается. Но есть и редкие случаи когда завершается с одного нажатия Enter.
    Объясните, пожалуйста, почему так?

    • @Folkem
      @Folkem Před 4 lety +1

      Думаю, это как раз проблема в когерентности кэшей, что тут объясняется. Пробуй пометить volatile переменную, как в уроке.

  • @SvetlanaCapri
    @SvetlanaCapri Před rokem

    Спасибо

  • @xxxivancionx6503
    @xxxivancionx6503 Před 3 lety

    пробовал у себя запустить такой же код, и без слова volatile он работает через раз

  • @araellaryan9405
    @araellaryan9405 Před 4 lety

    Спасибо за уроки. А есть урок про Динамический Прокси?

  • @user-fy3iv9dp7g
    @user-fy3iv9dp7g Před 2 lety

    Не совсем понятно зачем это надо, если есть Synchronized? В чём разница?

  • @user-yf2cp3hx3g
    @user-yf2cp3hx3g Před 2 lety

    прохожу курс по юдеми мне очень сложна понять многопточность я делаю все чтобы понять.Как всегда хочется бросить 😭😭😭

  • @sLasHee85
    @sLasHee85 Před 4 lety

    Будут ли ещё видео Продвинутая Java? Многопоточность начали и на волатайл закончилось. Жаль...

    • @alishevN
      @alishevN  Před 4 lety +2

      Полный курс "Продвинутая Java" находится здесь: www.udemy.com/javarussia/?couponCode=ADVANCED_JAVARUSSIA

  • @evgeniyt3171
    @evgeniyt3171 Před 3 lety

    Видео начинается на 14:15 минуте

  • @---bs5rb
    @---bs5rb Před 5 lety

    Волотильность)

  • @flatronkujo
    @flatronkujo Před 4 lety +1

    было еще проще написать так:(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
      @NiflheimForever Před 4 lety

      Нет, не правильно. Так все потоки прекращаются. Например, если в потоке main после myThread.shutdown(); написаны еще команды то они не будут выполнятся, из-за System.exit(0); А в случае описанном в уроке, прекратится только один поток, и в потоке main продолжатся выполнятся другие команды.

  • @konstantinmatushenko5831

    Будет ли видео по github?

    • @alishevN
      @alishevN  Před 6 lety +8

      Будет целый курс в течение месяца, следите за обновлениями на канале!

    • @alexandralban5682
      @alexandralban5682 Před 6 lety

      Поддерживаю

    • @ivanshurkov1768
      @ivanshurkov1768 Před 5 lety

      Где курс то целый обещанный 3 месяца прошло

    • @umed_tech
      @umed_tech Před 5 lety +2

      @@ivanshurkov1768 никогда программисты не сдавали или не делали свои проекты во время ) это один из случай))

  • @_ZHONG_XIN_NA_
    @_ZHONG_XIN_NA_ Před 2 lety

    Тыща лайков

  • @user-kd9ex4yh7d
    @user-kd9ex4yh7d Před 4 lety

    Интересно. Но вы бы хоть шрифт сделайте побольше, ни слова разглядеть невозможно.