Описание тега virtual-threads

0 ответов

Механизм Epoll при использовании виртуальных потоков

Я реализую tcp-сервер на основе виртуальных потоков epoll и JAVA, я создал поток платформы для бесконечного количества входящих сообщений или соединений, и для каждого установленного соединения виртуальный поток сBlockingQueueсоздано. Таким образом,…
07 фев '23 в 08:44
1 ответ

Можно ли создать ThreadLocal для несущего потока виртуального потока Java?

JEP-425: Virtual Threads заявляет, что новый виртуальный поток «следует создавать для каждой задачи приложения», и дважды ссылается на возможность запуска «миллионов» виртуальных потоков в JVM. Тот же JEP подразумевает, что каждый виртуальный поток …
08 янв '23 в 11:56
2 ответа

Как обнаружить виртуальные потоки в Java 19

Допустим, я хочу выпустить программу, работающую на Java 17, поскольку она широко доступна, но использую отражение, чтобы определить, работаю ли я на виртуальной машине с возможностью создания фабрики потоков черезThread.ofVirtual().name("abc").fact…
0 ответов

Как проверить виртуальные потоки на работающей JVM?

Я использовал Project Loom для возрождения игрового сервера — это очень старый код, который был написан еще в те времена, когда еще были зеленые потоки, поэтому написание сервера по модели «один поток на соединение» не было необоснованным — и он раб…
0 ответов

Производительность виртуального потока в IntSteram по сравнению с обычным циклом for

Я пытаюсь создать 100 тыс. виртуальных потоков с помощью простых операторов печати. Когда я использую приведенный ниже код, расчетное время выполнения составляет 2 миллисекунды: List < Thread > threads = IntStream.of(0, 100000) .mapToObj(it -&…
2 ответа

Thread.currentThread().getName() возвращает пустую строку "" для виртуальных потоков, созданных с помощью Executors.newVirtualThreadPerTaskExecutor()

Я работаю с Java 19. Я пытался использовать недавно представленные виртуальные потоки следующим образом: public static void main(String[] args) { System.out.println("Started with virutal threads"); try (ExecutorService virtualService = Executors.new…
05 май '23 в 08:51
1 ответ

Почему JMC (JDK Mission Control) не отображает события виртуального потока?

У меня есть небольшое приложение SpringBoot с 1RestControllerследующим методом: @GetMapping("/current-thread") String currentThread() throws InterruptedException { var msg = new Msg(); Thread.startVirtualThread(() -> { msg.s += Thread.currentThre…
05 авг '23 в 21:48
0 ответов

Почему присоединение к бездействующему виртуальному потоку в статическом инициализаторе блокируется на неопределенный срок?

Примечание. Я прекрасно понимаю, что создание потоков в статических инициализаторах не рекомендуется. Тем не менее, изучение крайних случаев может дать интересную информацию и выявить нежелательное поведение или ошибки. Отсюда этот вопрос. Экспериме…
0 ответов

Как виртуальный поток узнает, что его операция блокировки завершилась?

Насколько я понимаю, виртуальный поток на самом деле является «задачой», а не потоком. Виртуальный поток выполняется потоками-носителями внутри ForkJoinPool. Когда виртуальный поток сталкивается с блокировкой ввода-вывода и переходит в состояние ожи…
14 июл '23 в 07:19
0 ответов

Параллельный поток Kotlin/Java в виртуальных потоках

У меня есть проект на Котлине с Java 19 (с экспериментальными функциями). У меня есть код: private val virtualExecutor = Executors.newVirtualThreadPerTaskExecutor() private fun countTenantsConsumption( paged: Page<Tenant>, command: RequestComm…
14 июн '23 в 11:37
0 ответов

Почему сказано, что виртуальный поток по-прежнему выполняет код в потоке ОС?

Я изучаю виртуальные потоки Java, и меня очень смущает это предложение: Виртуальный поток по-прежнему выполняет код в потоке ОС. Согласно документации, предоставленной Oracle, виртуальный поток по-прежнему выполняет код в потоке ОС. Я думаю, что вир…
10 окт '23 в 09:32
1 ответ

Собственная сборка Spring, не использующая виртуальные потоки

Я создаю несколько простых веб-приложений, в которых хочу использовать преимущества как встроенной компиляции, так и виртуальных потоков. На данный момент с помощью Spring-Boot 3.2.0 я могу создавать собственные исполняемые файлы или использовать пр…
1 ответ

При каких обстоятельствах виртуальные потоки расширят количество базовых потоков-носителей?

В jep444 вижу "Реализации этих операций блокировки компенсируют захват потока ОС за счет временного расширения параллелизма планировщика". При каких обстоятельствах виртуальные потоки расширят количество базовых потоков-носителей? Можете ли вы дать …
16 ноя '23 в 03:44
0 ответов

Виртуальные потоки и Spring WebFlux

Недавно была выпущена Java 21, в которой были добавлены виртуальные потоки, я просматривал некоторые тесты производительности Spring Boot на виртуальных потоках и Spring WebFlux, результаты показали, что стандартный Spring Boot превосходит реактивны…
0 ответов

Будет ли виртуальный поток Java полезен для приложения двунаправленного потока Grpc?

Нам нужно создать микросервис, используя Spring Boot + grpc. Мы должны использовать двунаправленную потоковую передачу Grpc. Поэтому, когда клиент подключается к игре, соединение не разрывается, пока клиент не выйдет из игры. Наш RPC будет выглядеть…
21 сен '23 в 03:06
2 ответа

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

Как виртуальные потоки Java 21 будут сравниваться с сопрограммами Kotlin? При кодировании на Kotlin лучше ли отдавать предпочтение одному другому? Это видео: Новая функция Java 21: виртуальные потоки #RoadTo21, похоже, не одобряет использование вирт…
0 ответов

Чем можно объяснить взаимоблокировку, возникающую только в виртуальных потоках?

Я столкнулся с тупиком при использовании исполнителя на основе виртуальных потоков. Проблема возникает, когда я использую 50 потоков, но не 20. Проблема не проявляется, когда я не использую виртуальные потоки. Мне нужны идеи и рекомендации по устран…
29 ноя '23 в 14:03
0 ответов

Можно ли улучшить «откат» с помощью виртуальных потоков в «spring-boot 3.2»?

Очень рад, выпущен Spring-Boot 3.2. Примечания к выпуску Spring Boot 3.2.0 Как упоминалось здесь, Spring-Boot может включать виртуальные потоки. Tomcat и Jetty могут обрабатывать веб-запросы, используя виртуальные потоки. Однако о подводном течении …
24 ноя '23 в 07:53
0 ответов

Есть ли параметр конфигурации Spring Boot для переключения между виртуальными потоками и потоками платформы?

Существует ли стандартный встроенный параметр конфигурации Spring Boot, позволяющий указать, следует ли использовать виртуальные потоки или потоки платформы для контроллера отдыха? Или это единственный способ создать конфигурационные компоненты, как…
1 ответ

Встроенный HTTP-клиент Java 21 закрепляет поток несущей

Я использую Java Corretto 21.0.0.35.1 build 21+35-LTS и встроенный HTTP-клиент Java для получения ответа в виде файла . Я делаю параллельные запросы, используя виртуальные потоки, и по большей части это работает хорошо. Однако иногда во время моего …