Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш канал: @proJVM Вакансии: @jvmjobs @jvmjobschat ⚠️ Оффтоп -> @flood ❌Переход на личности ❌Троллинг ❌Реклама ❌HH (вакансии) ❌Варез
То есть получается мы с виртуальными будем упираться:
В размер хипа
Сетевые дескрипторы
Логику обработки запроса
Пропускную способность сети
В этом и кроется разница, 60 тысяч виртуальных дадут тебе всего 60мб оверхэда и ничего блокировать не будут, все будет уже зависеть от сети и логики
Читать полностью…Я еще имел ввиду не заблокировать, а остановить. Типо заблокировать == остановить, не правильно я выразился
Читать полностью…На уровне JVM доработку сделали, у тебя при блокирующем вызове в виртуальном потоке произойдет саспенд, платформенный тред отцепится от этого виртуального потока и пойдет обслуживать другой виртуальный
Читать полностью…Ладно, не допонялт друг друга, бывает. Ответ я получил, что посмотреть. В любом случае, спасибо🤝
Читать полностью…Ты мне ответил какую то дичь вот тут, несвязанную с Томкатом, которую и так все знают
Читать полностью…Так они блочатся на минуту 1000 rps * 60 = 60000 виртуальных потоков
Читать полностью…а в джаве нет чего-то наподобие контекста с таймаутом, как в Go? Чтобы прерывать висящие запросы
Читать полностью…В томкате с обычными потоками у тебя есть экзекьютор сервис, внутри которого очередь и если ты ее переполнишь, сервак реджектить будет
Читать полностью…В теории можно и пару лямов создать, главное чтобы памяти хватило
Читать полностью…Официальный Youtube-канал Java знакомит нас с API Virtual Threads:
https://youtu.be/lKSSBvRDmTg
Дим, а где можно почитать про устройство виртуальных потоков? Или доклады какие-нить может быть можешь посоветовать
Читать полностью…При этом разница в размере платформенного/виртуального треда на порядки
Читать полностью…Я с корутинами работал и корутину можно заблокировать, почему виртуальный поток нельзя?
Читать полностью…Ну заблокирован поток в томкате, ждет ответа от стороннего сервиса, который медленно отвечает
Читать полностью…потому что не имеет значение tomcat или нет. Везде схема с virtual threads одна. Создаются на каждую задачу новые и никак не пулятся
Читать полностью…В обычном Tomcat используется пулл потоков 100-200 можешь сам выставить и если у тебя блокирующий API на минуту условно, то ты можешь обработать не больше 200 запросов за 1 минуту.
WebFlux же помогал с этой проблемой используя реактивные потоки.
Я прочитал, что используют сейчас Spring MVC + Tomcat + Виртуальные потоки и мне стало интересно, вместо пула потоков там сейчас используются виртуальные потоки?