Как включить волокна для раннего выпуска jdk-16 loom?

#java #java-loom

#java #java-loom

Вопрос:

Я скачал версию раннего выпуска с https://jdk.java.net/loom / и java запускается, но выполняет Class.forName("java.lang.Fiber") и Class.forName("java.lang.FiberScope") не работает. Есть ли флаг / jar, который необходимо включить?

Комментарии:

1. Прежде всего — убедитесь, что вы действительно запускаете ожидаемый выпуск java, а не какой-либо другой, установленный на вашем компьютере. Например, печать System.getProperty("java.version") .

2. Также я не нашел никакого понятия java.lang.Fiber в репозитории ( github.com/openjdk/loom/search ? q = fiber ), и примеры использования предлагают построители потоков с .virtual() методом для работы с зелеными потоками, так что, возможно, вы ищете что-то, чего там нет (или, может быть, оно было там некоторое время назад и было удалено позже)

Ответ №1:

Термин «волокно», похоже, был изменен на «виртуальный поток».

Смотрите интервью 2020-10 с Брайаном Гетцем в 31:00 на YouTube, где он упоминает об изменении названия.

Посмотрите в Java 16 Javadoc с ранним доступом для таких вещей, как Thread.VirtualThreadTask .

См. терминологию виртуальных потоков, используемую в проекте JEP: повторно реализовать ThreadGroup, созданную 2020-09-07.

Смотрите Код, обсуждаемый в этой статье 2020-05 создание подобных вызовов Thread.startVirtualThread . [Может быть устаревшим, я не знаю.]

Ответ №2:

Это поздний ответ, но просто для экономии времени, поскольку это все еще экспериментальная функция, которую вы можете использовать с помощью --enable preview flag on jshell `. Вот как я это использовал. введите описание изображения здесь