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

Оптимизация использования ЦП за счет параллельного выполнения задач с разными приоритетами в Java

Небольшим ограничением Java CompletableFuture является невозможность выбора приоритета потока… С пометкой java, учебник.

Небольшим ограничением Java CompletableFuture является невозможность выбора приоритета потока, которому они назначены, что делает невозможным назначение требуемой рабочей нагрузки процессору.

В этой ситуации компонент BackgroundExecutor библиотеки Burningwave Core приходит нам на помощь, предоставляя нам возможность параллельно запускать различные функциональные интерфейсы путем установки приоритета потока, которому они будут назначены . Существует также возможность подождать, пока они начнутся или закончатся. BackgroundExecutor также используется компонентом Помощник по итеративным объектам для параллельного перебора коллекций или массивов .

Чтобы использовать BackgroundExecutor, вам следует просто добавить следующее в зависимости ваших проектов:

Поставщик потоков предоставляет фиксированное количество потоков многократного использования, указанное свойством ” поставщик потоков.максимальное количество потоков с возможностью объединения “, и, если эти потоки уже назначены, будут созданы новые потоки, не подлежащие повторному использованию, максимальное количество которых указано свойством ” поставщик потоков.максимальное количество отсоединенных потоков “. Как только это ограничение будет достигнуто, если запрос на новый поток превысит время ожидания, указанное свойством ” поставщик потоков.объединяемый поток-запрос-тайм-аут “, поставщик потоков продолжит увеличивать ограничение, указанное свойством ” поставщик потоков.максимальное количество отсоединенных потоков ” для количества, указанного свойством ” поставщик потоков.максимальное количество отсоединенных потоков.увеличение шага “. Сброс свойства ‘ поставщик потоков.максимальное количество отсоединенных потоков ‘ до его начального значения будет происходить постепенно только тогда, когда больше не будет ожиданий запросов потоков в течение времени, указанного в ‘ thread-supplier.max-detached-thread-count.elapsed-time-threshold-from-last-increase-for-gradual-decreasing-to-initial- значение ‘ свойство.

Давайте посмотрим, как на примере того, как создавать задачи:

Оригинал: “https://dev.to/bw_software/optimizing-cpu-usage-by-performing-tasks-in-parallel-4ojg”