Тёмный

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

Eugene Suleimanov
Подписаться 28 тыс.
Просмотров 9 тыс.
50% 1

В данном видео мы рассматриваем основы виртуальных потоков в 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 Заключение

Опубликовано:

 

25 май 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 69   
@aleksandrplatonov2145
@aleksandrplatonov2145 2 месяца назад
Очень внятно и четко. До Вас читал статьи, но общий смысл за терминологией ускользал. Евгений, спасибо )
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за отзыв!
@user-br4gt7xu2j
@user-br4gt7xu2j 2 месяца назад
Круто расскажал, Жень! Надо было еще сравнение с работой на NIO селекторах привести, там тоже альтернативный подход к неблокирующей обработке
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Это уже будут не основы :) Спасибо за комментарий!
@friedbearsburninhell2022
@friedbearsburninhell2022 2 месяца назад
Хороший контент - многим может быть актуален =)
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за отзыв!
@ktotam8913
@ktotam8913 2 месяца назад
Евгений, спасибо за подсказку, когда на джуна пойду на собеседование, так же скажу в начале: Все сказанное мною в данном интервью является оценочным суждением 😂
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Всегда пожалуйста :)
@Steklopod
@Steklopod Месяц назад
Четко 👍🏻
@EugeneSuleimanov
@EugeneSuleimanov Месяц назад
Спасибо за отзыв!
@tiy2000
@tiy2000 2 месяца назад
Очень интересно! Спасибо!)
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за комментарий!
@johndow1591
@johndow1591 2 месяца назад
Очень доступно. Спасибо!
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за отзыв!
@Batyrbala
@Batyrbala 2 месяца назад
Как всегда на высоте, сенсей❤
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за отзыв :)
@ensolol
@ensolol 2 месяца назад
Евгений, благодарю! Крепко жму руку!)
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за поддержку!
@anjelomanoranjan3908
@anjelomanoranjan3908 2 месяца назад
Лайк заочно. А видос гляну чуть позже) Спасибо!
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за поддержку!
@elnar_1206
@elnar_1206 2 месяца назад
Спасибо за видео 🔥🔥🔥
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за комментарий!
@Valerikvv80
@Valerikvv80 2 месяца назад
Отличный ролик. Спасибо
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за отзыв!
@user-qx3jt8fw1v
@user-qx3jt8fw1v 2 месяца назад
ай что за красавчик в кадре
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за отзыв :)
@user-xu3px8pu4t
@user-xu3px8pu4t 2 месяца назад
Большое спасибо.
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за комментарий!
@telpozis
@telpozis 2 месяца назад
Спасибо, Евгений! =) Но тут очень важно, что "контекст сохраняемый в хип" должен быть относительно не большого размера. Тут сложно сказать конкретные цифры, т.к. железо сервера + ОС + ПО + размер контекста = дают просто огромное количество вариантов :) Тема классная, надо больше практики :)
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за отзыв! Да, много факторов, цифра взята крайне условно, "с потолка".
@JohnJohn31595
@JohnJohn31595 2 месяца назад
it's good! Thank you!
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Thank you for your support!
@ercefwxdx
@ercefwxdx 2 месяца назад
Дякую за відео, дуже круто!
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за отзыв!
@myNextPrediction
@myNextPrediction 2 месяца назад
Жостко. Як завжди нічо не зрозуміло з першого разу, буду переглядати відео поки не дійде🐺
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за комментарий :)
@dmitryischenko831
@dmitryischenko831 2 месяца назад
Спасибо за видео, Жень) только нужно учитывать размер своего изображения, когда накладываешь его на презентацию, а то не везде виден текст)
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за отзыв! Поправлю формат, спасибо.
@maksimus.ssirotkin1124
@maksimus.ssirotkin1124 2 месяца назад
а может ли быть , абстракция над ядром и потоком ядра? и за счет чего получается легковесность потока? Есть ли разница подобных языковых фреймворков в Java Go or Kotlin, т/е если по простому в ходе выполнения нескольких задач, когда раньше поток на одном ядре блокировал ядро, сейчас передает другому потоку на этом ядре или другом ядре. Но возможно это видео надо еще пересмотреть.
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за вопрос: Легковесность потока достигается в Java, в основном, за счет того, что каждый виртуальный поток не обязательно привязан к потоку ядра операционной системы. По поводу Go и Kotlin - да, есть goroutines и coroutines, но работают несколько по-другому.
@Cassin1797
@Cassin1797 2 месяца назад
Привет! Спасибо за видео! Вопрос немного не по теме, но что случилось с публичным менторингом Игоря? Планируются ли еще в будущем видео по менторингу формата advanced?
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за отзыв! Игорь устроился на работу и не смог совмещать с обучением. В будущем - планируется, сейчас «обкатываю» новую программу, по которой будем работать в рамках блока «Advanced».
@errodion
@errodion 2 месяца назад
Как же он хорош
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за комментарий!
@Max-wn2gd
@Max-wn2gd 2 месяца назад
большое спасибо. очень интересно. А ссылка на репозиторий не рабочая(
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Большое спасибо за отзыв! По ссылке - поправил - уже рабочая.
@SeusAmibius
@SeusAmibius 2 месяца назад
"Пишу код" и "Говорю слова" это как я понял интерфейсы человеческие) А что тогда "> 10 лет опыта в разработке" на абстрактный класс вроде не похоже, паттерн?
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Справедливо :)
@Alexander-mj3jk
@Alexander-mj3jk 16 дней назад
для любителей использовать котлин что-то поменяется?
@EugeneSuleimanov
@EugeneSuleimanov 16 дней назад
Нет, любовь к котлину не исчезнет :)
@Alexander-mj3jk
@Alexander-mj3jk 16 дней назад
@@EugeneSuleimanov посмотрел елизарова, сравнение виртуальных потоков и котлин корутин. Виртуальные потоки - это более глобальная концепция, она жрет (на момент того видео - год назад) раза в полтора-два больше памяти, и лучше подходит если старый тормозной многопоточный код надо улучшить. Для некоторых это важно. А вот так навскидку, если делать новое что-то, то мне котлин-корутины нравятся больше. Единственное что у них плохо - в них недонаписаны некоторые примитивы синхронизации. Например нету честного-нечестного ReadWriteLock (где-то есть тикет в котором Елизаров обещал, что когда будет время и желание - сделает). Мне правда этот ReadWriteLock вообще ни разу не был нужен.
@amalnishanaliev3142
@amalnishanaliev3142 2 месяца назад
На правах члена клуба "Покажи свою некомпетентность", хочу задать вопрос. Правильно я понимаю, что в java 21 garbage collector научили работать с контекстом виртуальных потоков?
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Не уверен, что понял ваш вопрос, но это несколько разные и не связанные вещи, поэтому вряд ли их нужно учить работать друг с другом.
@ivanknyazev7878
@ivanknyazev7878 2 месяца назад
Оу, а что ExecutorService теперь автоклозабл реализует?
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Да, в новых версиях это есть.
@nurakhmetzunun5802
@nurakhmetzunun5802 2 месяца назад
kotlin coroutine теперь в java)
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Да, дождались :)
@michael200kg
@michael200kg 2 месяца назад
Если использовать stealing pool то потоки не будут простаивать, как только поток освободится он "стащит" задачу у другого потока.
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Все верно, здесь этот момент проговаривается, мы хотим эмулировать ситуацию, когда на каждый запрос идет отдельный поток (аналог API).
@vladikshk
@vladikshk 2 месяца назад
Ссылка на репозиторий не рабочая
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за сигнал - исправил.
@user-xg6so1kq3z
@user-xg6so1kq3z 2 месяца назад
+
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Спасибо за поддержку!
@favoritdmitry6786
@favoritdmitry6786 2 месяца назад
Для чего нужно иметь механизм планирования потоками в процессе ОС ещё и планировщик в виртуальной машине...
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
Как минимум гибкость и управление внутренними ресурсами. Для ОС JVM простая программа наравне с остальными...
@favoritdmitry6786
@favoritdmitry6786 2 месяца назад
@@EugeneSuleimanov так или иначе виртуальная машина использует механизм ОС, каждой ОС..
@EugeneSuleimanov
@EugeneSuleimanov 2 месяца назад
@@favoritdmitry6786 верно. А в чем противоречие?
Далее
Будущее программирования
28:16
Java 21 new feature: Virtual Threads #RoadTo21
33:35
Просмотров 54 тыс.
Основы и секреты Rest API
5:13
Просмотров 1,4 тыс.
Что такое Kubernetes?
12:49
Просмотров 7 тыс.