Существует библиотека под названием Habanero-Java (HJ), разработанная в Университете Райса, которая была построена с использованием лямбда-выражений и может работать на любой Java 8 JVM.
HJ-lib объединяет широкий спектр конструкций параллельного программирования (например, асинхронные задачи, фьючерсы, задачи, управляемые данными, общие сведения, барьеры, фазеры, транзакции, акторы) в единую модель программирования, которая допускает уникальные комбинации этих конструкций ( например, вложенные комбинации параллелизма задачи и актера).
Среда выполнения HJ отвечает за управление созданием, выполнением и завершением задач HJ, и включает в себя как планировщики разделения работы, так и кражи работы. Вы можете следовать руководству, чтобы настроить его на своем компьютере.
Вот простой пример HelloWorld:
import static edu.rice.hj.Module1.*;
public class HelloWorld {
public static void main(final String[] args) {
launchHabaneroApp(() -> {
finish(() -> {
async(() -> System.out.println("Hello World - 1!"));
async(() -> System.out.println("Hello World - 2!"));
async(() -> System.out.println("Hello World - 3!"));
async(() -> System.out.println("Hello World - 4!"));
});
});
}}
Каждый асинхронный метод работает параллельно с другими асинхронными методами, в то время как содержимое этих методов выполняется последовательно. Программа не продолжится, пока не завершится весь код в методе finish .