3.6 KiB
tags | date | zero-link | author | source | ||
---|---|---|---|---|---|---|
|
2023-10-09 |
|
Олег Чирухин | Joker 2023 |
- ==Виртуальные потоки==
- Теперь есть метод для переворачивания List
- Паттерн матчинг
- 32 битная винда больше не поддерживается
Для каждой спецификации создаются тесты. Если на спецификацию нельзя создать спеку, то спецификация переписывается так, чтобы создать тест было можно.
Все вендеры, которые хотят называться Java (JDK) должны пройти эти тесты.
Теперь можно не создавать Main класс. На самом деле класс создается в момент компиляции.
Scoped Values вместо ThreadLocal По факту те же ThreadLocal только с четко ограниченной областью действия.
Generational ZGC Научился работать с поколениями. Хранит их в разных местах. Будет чаще собирать молодые поколения.
Virtual Thread Проблема старых тредов в том, что они базируются на обычных тредах ОС
Количество платформенных потоков ограничено количеством потоков ОС. Есть ThreadLocal. Они подходят для выполнения любых задач. Но они ограничены по ресурсам, и чтобы они заканчивались нужно заморочится.
Виртуальный поток не привязан к конкретному потоку ОС. При вызове блокирующей операции Java останавливает этот поток, до момента пока его можно будет вызвать. То есть мы освобождаем настоящий поток ОС, чтобы он не простаивал.
В виртуальных потоках не рекомендуется использовать ThreadLocal.
Подходят для выполнения задач, которые часто находятся в состоянии блокировки. Не подходят для выполнения длительных вычислений и систем в реальном времени.
В Quarkus есть аннотация для запуска на виртуальных потоках @RunOnVirtualThread
Пока ресурсов железа хватает никакой разницы нет. Когда железо заканчивается, то виртуальные треды начинают отрабатывать быстрее (раза в 2-3).