Рубрики
Без рубрики

Введение в Корутины с Квазаром

Научитесь внедрять корутины на Java с помощью квазара.

Автор оригинала: baeldung.

1. Введение

Coroutines являются альтернативой Java Threads, поскольку они обеспечивают способ выполнения прерываемые задачи на очень высоком уровне , но до тех пор, пока проект Loom не будет завершен, мы должны смотреть на библиотечную поддержку, чтобы получить его.

В этом учебнике мы посмотрим на Квазар, одну из таких библиотек, которая предлагает ко рутинную поддержку.

2. Настройка

Мы будем использовать последнюю версию квазара, который требует Java 11 или выше. Но, пример приложения будет также работать с предыдущими версиями Квазар, которые совместимы с Java 7 и 8.

Квазар обеспечивает три зависимости которые мы должны включить в нашу сборку:


    co.paralleluniverse
    quasar-core
    0.8.0


    co.paralleluniverse
    quasar-actors
    0.8.0


    co.paralleluniverse
    quasar-reactive-streams
    0.8.0

Реализация квазара опирается на приборы bytecode для правильной работы . Для выполнения приборов bytecode у нас есть два варианта:

  • Во время компиляции, или
  • Во время выполнения с агентом Java

Использование агента Java является предпочтительным способом, поскольку он не имеет каких-либо специальных требований к сборке и работает с любой настройкой.

2.1. Укажите агента Java с Maven

Чтобы запустить Java-агент с Maven, мы должны включить maven-зависимость-плагин всегда запускать свойства цель:


    maven-dependency-plugin
    3.1.1
    
        
            getClasspathFilenames
            
               properties
            
        
    

свойства цель будет генерировать свойство, указывающее на квазар-ядро.jar расположение на classpath.

Для выполнения нашего приложения мы будем использовать exec-maven-plugin :


    org.codehaus.mojo
    exec-maven-plugin
    3.0.0
    
        target/classes
        echo
        
            -javaagent:${co.paralleluniverse:quasar-core:jar}
            -classpath 
            com.baeldung.quasar.QuasarHelloWorldKt
        
    

Чтобы использовать этот плагин и запустить наше приложение, мы будем запускать Maven:

mvn compile dependency:properties exec:exec

3. Осуществление корутинов

Для реализации корутина мы будем использовать Волокна из библиотеки Квазара. Волокна обеспечить легкие потоки которые будут управляться JVM вместо операционной системы. Поскольку они требуют очень мало оперативной памяти и положить гораздо меньше нагрузки на процессор, мы могли бы миллионы из них в нашем приложении, не беспокоясь о производительности.

Запуск волокна, мы создаем экземпляр Класс который обернет код, который мы хотим выполнить, и позвонит в начать метод:

new Fiber(() -> {
    System.out.println("Inside fiber coroutine...");
}).start();

4. Заключение

В этой статье мы ввели способ реализации корутинов с помощью библиотеки Квазара. То, что мы видели здесь, является лишь минимальным рабочим примером, и библиотека Квазара способна сделать гораздо больше.

Пожалуйста, найдите все исходный код более на GitHub .