производство
Программное обеспечение
Армения, Ереван
Декабрь 2023
В отличие от создания нитей (threads), что входит в функционал Java Core, Java не имеет поддержки явного multiprocessing. Разработанная нами библиотека org.engitex.JMP (Java MultiProcessing) нацелена на предоставление такого функционала пользователю.
Кроме того, данный функционал используется системой управления Ява-кластером (cluster management), которая также входит в библиотеку. Основная задача системы - оптимальное распределение задач (1 задача = 1 процесс) между доступными нодами.
Разработанное решение использует:
- Java RMI для общения между процессом и нодой, на которой процесс запущен, а также между нодами;
- Windows PowerShell для оценки системных ресурсов и работой с запущенными процессами на машине.
Синтаксис вызова/создания нового процесса максимально приближен к созданию новой нити (thread) на Java.
1. Создается объект rw класса RunnableWrapper, который включает в себя ссылку на задачу, которая будет запущена как отдельный процесс.
2. Конструктор: ProcessInvocator pi = new ProcessInvocator(RunnableWrapper rw, String ip_string_or_null_if_local, char[] affinityCPU);
3. Запуск процесса: pi.start();
НТЦ Энжитек с удовольствием обсудит вашу задачу