Java Interview Tasks
В каком месте код упадет из-за NPE?
Здесь не будет никакой ошибки, так как стрим вообще не будет запущен из-за отсутствия терминальной операции.
Вопрос для читателей, упадет ли код с ошибкой (если да, то с какой?) если в этот стрим добавить .count() ?
Вопрос для читателей, упадет ли код с ошибкой (если да, то с какой?) если в этот стрим добавить .count() ?
🔥6👍2
Какой тред пул быстрее отработает?
Anonymous Quiz
17%
Fixed thread pool
34%
Cached thread pool
42%
Virtual thread pool
8%
Другой вариант
🤣11👍5🔥3🤯2🤡2👎1
Результаты на моем ноуте:
# JMH version: 1.33
# VM version: JDK 21.0.1, OpenJDK 64-Bit Server VM, 21.0.1+12-29
# 16 cores
Benchmark Mode Cnt Score Error Units
Test.testCachedExecutorTask200ms avgt 2 214770,671 us/op
Test.testFixedExecutorTask200ms avgt 2 4260257,133 us/op
Test.testVirtualExecutorTask200ms avgt 2 212590,221 us/op
Интерпретация:
Разницы между Cached и Virtual нет. Это было ожидаемо. На такой нагрузке работа с потоками занимает относительно малое время по сравнению с бизнес логикой (200 ms в тестах).
Разница между Fixed может быть объяснена тем что плохо подобрано количество потоков в пуле.
# JMH version: 1.33
# VM version: JDK 21.0.1, OpenJDK 64-Bit Server VM, 21.0.1+12-29
# 16 cores
Benchmark Mode Cnt Score Error Units
Test.testCachedExecutorTask200ms avgt 2 214770,671 us/op
Test.testFixedExecutorTask200ms avgt 2 4260257,133 us/op
Test.testVirtualExecutorTask200ms avgt 2 212590,221 us/op
Интерпретация:
Разницы между Cached и Virtual нет. Это было ожидаемо. На такой нагрузке работа с потоками занимает относительно малое время по сравнению с бизнес логикой (200 ms в тестах).
Разница между Fixed может быть объяснена тем что плохо подобрано количество потоков в пуле.
⚡4🔥3❤2👍1
Что такое java lts релиз?
Anonymous Quiz
59%
знаю
25%
не знаю
8%
не уверен что знаю:)
8%
узнать резхультаты
👍9
проблемы в https://t.me/java_interview_tasks/328:
1) метод load() будет вызываться несколько раз , если новые потоки будут приходить до того как doLoad загрузит данные => одни и те же данные будут грузится паралельно, что может вызвать проблемы, например оом, плюс к этому на каждый вызову будет создаваться новый тред
2) возможно подразумевается что эксепшен из метода load перехватится в методе get, но этого не будет, так как он был выброшен в другом треде
Вопрос к экспертам по jmm: надо ли поле lastUpdate делать volatile ?
1) метод load() будет вызываться несколько раз , если новые потоки будут приходить до того как doLoad загрузит данные => одни и те же данные будут грузится паралельно, что может вызвать проблемы, например оом, плюс к этому на каждый вызову будет создаваться новый тред
2) возможно подразумевается что эксепшен из метода load перехватится в методе get, но этого не будет, так как он был выброшен в другом треде
Вопрос к экспертам по jmm: надо ли поле lastUpdate делать volatile ?
Telegram
Java Interview Tasks
какие тут проблемы могут быть? (метод get могут вызывать разные потоки одновременно)
🔥5❤2👍1
Java Interview Tasks
какие тут проблемы могут быть? (метод get могут вызывать разные потоки одновременно)
Что бы понять нужен ли volatile над полем, проведем несколько тестов:
Будем использовать jcstress - https://openjdk.org/projects/code-tools/jcstress/
(https://youtu.be/uZfK-9ixxec?si=oE1Lqvp8_wxoLOuY)
Код двух экспериментов ниже:
Будем использовать jcstress - https://openjdk.org/projects/code-tools/jcstress/
(https://youtu.be/uZfK-9ixxec?si=oE1Lqvp8_wxoLOuY)
Код двух экспериментов ниже:
🔥3❤2👍1
Запускал эти тесты у себя локально, на jdk11:
java.specification.name Java Platform API Specification
java.specification.vendor Oracle Corporation
java.specification.version 11
java.vendor Amazon.com Inc.
java.version 11.0.19
java.vm.name OpenJDK 64-Bit Server VM
java.vm.vendor Amazon.com Inc.
java.vm.version 11.0.19+7-LTS
os.arch amd64
os.name Windows 11
os.version 10.0
java.specification.name Java Platform API Specification
java.specification.vendor Oracle Corporation
java.specification.version 11
java.vendor Amazon.com Inc.
java.version 11.0.19
java.vm.name OpenJDK 64-Bit Server VM
java.vm.vendor Amazon.com Inc.
java.vm.version 11.0.19+7-LTS
os.arch amd64
os.name Windows 11
os.version 10.0
🔥4❤2
Какие потоки будут создаваться быстрее?
Anonymous Quiz
54%
virtual threads быстрее
20%
большой разницы не будет
9%
threads быстрее
17%
узнать ответ
🔥7🐳3👍1