Эквивалент параллельной библиотеки задачи в Java
-
29-09-2019 - |
Вопрос
Я предполагаю, что в Java нет эквивалента параллельных библиотек задач (из .NET 4.0). Это правда? Каковы улучшения, что эта функция .NET предлагает, что параллелизм Java не делает.
Решение
У Java есть java.util.concurrent
упаковка, а также есть Форма/соединение фреймворка. Отказ Вилка/соединение запланировано для включения в Java 7, но может быть Скачали сейчас и используется с Java 6.
Хорошая книга о том, чтобы справиться с параллелизмом на Java Ява параллелизм на практике, Брайан Гетц и другие.
Другие советы
Библиотека Хабанеро-Джава (HJ-LIB)-это новая библиотека реализация Habanero-Java (HJ), педагогической модели параллельного программирования, разработанной в Райсский университет. Отказ HJ-LIB способен выражать множество различных форм параллельных паттернов, включая параллелизм данных, параллелизм трубопровода, параллелизм потока, параллелизм петли и параллелизм разделения и контроля.
HJ-LIB интегрирует широкий спектр параллельных программирующих конструкций (например, асинхронные задачи, фьючерсы, задачи, управляемые данными, Forall, Bearriers, Phasers, Transactions, Actors) в одной модели программирования, которая обеспечивает уникальные комбинации этих конструкций (например, вложенные Комбинации задачи и параллелизма актера).
HJ-LIB строится с помощью Lambda выражения и может работать на любой Java 8 JVM. Старые JVM могут быть нацелены на то, чтобы полагаться на внешние инструменты преобразования Bytecode для совместимости. Время выполнения HJ отвечает за организацию создания, выполнения и прекращения задач HJ, а также содержит как планировщики, так и планировщики по сокращению рабочих мест.
HJ-LIB также является привлекательным инструментом для преподавателей с многочисленными образовательными ресурсами, доступными на уровне второго курса COMP 322 КУРС предлагается в Райс Университет. Эти ресурсы также могут быть использованы для изучения API библиотеки. Javadoc для API также доступны.
Вот простая версия Helloworld:
import static edu.rice.hj.Module1.*;
public class HelloWorld {
public static void main(final String[] args) {
launchHabaneroApp(() -> {
finish(() -> {
async(() -> System.out.println("Hello"));
async(() -> System.out.println("World"));
async(() -> System.out.println("in"));
async(() -> System.out.println("HJ-lib"));
});
});
}
}
Дальнейшие примеры для различных параллельных конструкций доступны из Comp 322 Веб -сайт курса.
Да. Java не имеет эквивалента параллельной библиотеки задачи - TPL (из .NET 4.0). Вы правы в своем вопросе (основное слово - net 4.0). TPL «общий» - универсальная библиотека .NET для ЛЮБЫЕ .NET APPLICE. Это означает, что вы можете иметь единую общую асинхронную логику для любого приложения .NET (WPF, Winforms, xamarin.forms, asp.net, ...) с действительно асинхронным (не блокирующим UI) подходом. У Java нет. Javafx имеет особый не блокирующий класс задач, Swing - Fooshoder Workings, Android - собственный подход. ... Так названная утиль. Конкурентность Java Package не имеет никаких беззаботных решений пользовательского интерфейса (Javafx, Swing).
Из того, что я знаю, в Java нет эквивалента.
Я написал библиотеку задач Java, вдохновленную TPL. Это не поддерживает все функции TPL, но в то время соответствовал моим требованиям.
GitHub: https://github.com/brunomndantas/tpl4j
Maven: https://mvnrepository.com/artifact/com.github.brunomndantas/tpl4j