Виртуальные потоки в Java

Поделиться
HTML-код
  • Опубликовано: 17 июн 2024
  • В данном видео мы рассматриваем основы виртуальных потоков в Java.
    Дружное сообщество:
    t.me/pse_club
    Материалы для разработчиков:
    proselyte.net/
    Ссылка на GitHub:
    github.com/proselytear/virtua...
    JEP444:
    openjdk.org/jeps/444
    00:00:00 Введение
    00:01:04 Блокирующий подход
    00:08:52 Асинхронный подход
    00:12:20 Концепция легковесных потоков
    00:12:52 Виртуальные потоки
    00:16:44 Более детальное описание виртуальных потоков
    00:21:43 Заключение

Комментарии • 69

  • @aleksandrplatonov2145
    @aleksandrplatonov2145 3 месяца назад +1

    Очень внятно и четко. До Вас читал статьи, но общий смысл за терминологией ускользал. Евгений, спасибо )

  • @friedbearsburninhell2022
    @friedbearsburninhell2022 3 месяца назад +3

    Хороший контент - многим может быть актуален =)

  • @user-br4gt7xu2j
    @user-br4gt7xu2j 3 месяца назад +5

    Круто расскажал, Жень! Надо было еще сравнение с работой на NIO селекторах привести, там тоже альтернативный подход к неблокирующей обработке

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 месяца назад

      Это уже будут не основы :)
      Спасибо за комментарий!

  • @ensolol
    @ensolol 3 месяца назад

    Евгений, благодарю! Крепко жму руку!)

  • @tiy2000
    @tiy2000 3 месяца назад +1

    Очень интересно!
    Спасибо!)

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 месяца назад +1

      Спасибо за комментарий!

  • @johndow1591
    @johndow1591 3 месяца назад

    Очень доступно. Спасибо!

  • @Batyrbala
    @Batyrbala 3 месяца назад

    Как всегда на высоте, сенсей❤

  • @anjelomanoranjan
    @anjelomanoranjan 3 месяца назад

    Лайк заочно. А видос гляну чуть позже) Спасибо!

  • @ktotam8913
    @ktotam8913 3 месяца назад +1

    Евгений, спасибо за подсказку, когда на джуна пойду на собеседование, так же скажу в начале:
    Все сказанное мною в данном интервью является оценочным суждением 😂

  • @Valerikvv80
    @Valerikvv80 3 месяца назад

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

  • @elnar_1206
    @elnar_1206 3 месяца назад

    Спасибо за видео 🔥🔥🔥

  • @user-xu3px8pu4t
    @user-xu3px8pu4t 3 месяца назад

    Большое спасибо.

  • @ercefwxdx
    @ercefwxdx 3 месяца назад

    Дякую за відео, дуже круто!

  • @JohnJohn31595
    @JohnJohn31595 3 месяца назад

    it's good! Thank you!

  • @Steklopod
    @Steklopod 2 месяца назад

    Четко 👍🏻

  • @telpozis
    @telpozis 3 месяца назад

    Спасибо, Евгений! =) Но тут очень важно, что "контекст сохраняемый в хип" должен быть относительно не большого размера. Тут сложно сказать конкретные цифры, т.к. железо сервера + ОС + ПО + размер контекста = дают просто огромное количество вариантов :) Тема классная, надо больше практики :)

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 месяца назад +1

      Спасибо за отзыв!
      Да, много факторов, цифра взята крайне условно, "с потолка".

  • @dmitryischenko831
    @dmitryischenko831 3 месяца назад

    Спасибо за видео, Жень) только нужно учитывать размер своего изображения, когда накладываешь его на презентацию, а то не везде виден текст)

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 месяца назад

      Спасибо за отзыв!
      Поправлю формат, спасибо.

  • @myNextPrediction
    @myNextPrediction 3 месяца назад

    Жостко. Як завжди нічо не зрозуміло з першого разу, буду переглядати відео поки не дійде🐺

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 месяца назад

      Спасибо за комментарий :)

  • @user-qx3jt8fw1v
    @user-qx3jt8fw1v 3 месяца назад

    ай что за красавчик в кадре

  • @errodion
    @errodion 3 месяца назад

    Как же он хорош

  • @Cassin1797
    @Cassin1797 3 месяца назад

    Привет! Спасибо за видео! Вопрос немного не по теме, но что случилось с публичным менторингом Игоря? Планируются ли еще в будущем видео по менторингу формата advanced?

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 месяца назад

      Спасибо за отзыв!
      Игорь устроился на работу и не смог совмещать с обучением. В будущем - планируется, сейчас «обкатываю» новую программу, по которой будем работать в рамках блока «Advanced».

  • @maksimus.ssirotkin1124
    @maksimus.ssirotkin1124 3 месяца назад +2

    а может ли быть , абстракция над ядром и потоком ядра? и за счет чего получается легковесность потока? Есть ли разница подобных языковых фреймворков в Java Go or Kotlin, т/е если по простому в ходе выполнения нескольких задач, когда раньше поток на одном ядре блокировал ядро, сейчас передает другому потоку на этом ядре или другом ядре. Но возможно это видео надо еще пересмотреть.

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 месяца назад +1

      Спасибо за вопрос:
      Легковесность потока достигается в Java, в основном, за счет того, что каждый виртуальный поток не обязательно привязан к потоку ядра операционной системы.
      По поводу Go и Kotlin - да, есть goroutines и coroutines, но работают несколько по-другому.

  • @Max-wn2gd
    @Max-wn2gd 3 месяца назад

    большое спасибо. очень интересно. А ссылка на репозиторий не рабочая(

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 месяца назад

      Большое спасибо за отзыв!
      По ссылке - поправил - уже рабочая.

  • @nurakhmetzunun5802
    @nurakhmetzunun5802 3 месяца назад

    kotlin coroutine теперь в java)

  • @SeusAmibius
    @SeusAmibius 3 месяца назад

    "Пишу код" и "Говорю слова" это как я понял интерфейсы человеческие) А что тогда "> 10 лет опыта в разработке" на абстрактный класс вроде не похоже, паттерн?

  • @ivanknyazev7878
    @ivanknyazev7878 3 месяца назад

    Оу, а что ExecutorService теперь автоклозабл реализует?

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 месяца назад

      Да, в новых версиях это есть.

  • @amalnishanaliev3142
    @amalnishanaliev3142 3 месяца назад

    На правах члена клуба "Покажи свою некомпетентность", хочу задать вопрос. Правильно я понимаю, что в java 21 garbage collector научили работать с контекстом виртуальных потоков?

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 месяца назад

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

  • @Alexander-mj3jk
    @Alexander-mj3jk Месяц назад

    для любителей использовать котлин что-то поменяется?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Месяц назад +1

      Нет, любовь к котлину не исчезнет :)

    • @Alexander-mj3jk
      @Alexander-mj3jk Месяц назад

      @@EugeneSuleimanov посмотрел елизарова, сравнение виртуальных потоков и котлин корутин. Виртуальные потоки - это более глобальная концепция, она жрет (на момент того видео - год назад) раза в полтора-два больше памяти, и лучше подходит если старый тормозной многопоточный код надо улучшить. Для некоторых это важно. А вот так навскидку, если делать новое что-то, то мне котлин-корутины нравятся больше. Единственное что у них плохо - в них недонаписаны некоторые примитивы синхронизации. Например нету честного-нечестного ReadWriteLock (где-то есть тикет в котором Елизаров обещал, что когда будет время и желание - сделает). Мне правда этот ReadWriteLock вообще ни разу не был нужен.

  • @michael200kg
    @michael200kg 3 месяца назад

    Если использовать stealing pool то потоки не будут простаивать, как только поток освободится он "стащит" задачу у другого потока.

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 месяца назад +1

      Все верно, здесь этот момент проговаривается, мы хотим эмулировать ситуацию, когда на каждый запрос идет отдельный поток (аналог API).

  • @user-xg6so1kq3z
    @user-xg6so1kq3z 3 месяца назад

    +

  • @vladikshk
    @vladikshk 3 месяца назад

    Ссылка на репозиторий не рабочая

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 месяца назад +2

      Спасибо за сигнал - исправил.

  • @favoritdmitry6786
    @favoritdmitry6786 3 месяца назад

    Для чего нужно иметь механизм планирования потоками в процессе ОС ещё и планировщик в виртуальной машине...

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 месяца назад

      Как минимум гибкость и управление внутренними ресурсами. Для ОС JVM простая программа наравне с остальными...

    • @favoritdmitry6786
      @favoritdmitry6786 3 месяца назад

      @@EugeneSuleimanov так или иначе виртуальная машина использует механизм ОС, каждой ОС..

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 месяца назад

      @@favoritdmitry6786 верно. А в чем противоречие?