Я столкнулся с openMP, который можно использовать для распараллеливания циклов for в c, C++. Конечно, OpenMP мог бы сделать гораздо больше, чем просто. Но мне любопытно, можем ли мы распараллелить циклы for в java для оптимизации производительности программ. Предположим, что у меня есть n итераций в цикле for, существует ли способ параллельного запуска этих итераций?Параллелизировать для циклов в java
ответ
Если каждая итерация занимает много времени и не зависит от предыдущих вычислений в цикле, то используйте ExecutorService и отправьте вычисления как задачи.
ExecutorService executorService = Executors.newFixedThreadPool(4); // number of threads
for (int i = 0; i < n; i++) {
// declare variables as final which will be used in method run below
final int count = i;
executorService.submit(new Runnable() {
@Override
public void run() {
//do your long stuff and can use count variable
}
});
}
Когда я пытаюсь сделать так, как вам было предложено, im получает следующую ошибку: не может ссылаться на не конечные переменные внутри внутреннего класса, определенного другим способом , В моем цикле for используется несколько не конечных переменных. – Praveen
добавленный пример, как решить эту проблему – Tala
Спасибо, краткий и эффективный ответ. Возможно, добавьте 'executorService.shutdown()', чтобы немного синхронизировать вещи. – Austin
- 1. Параллелизировать процессы для получения скорости
- 2. Эффективность Java для циклов
- 3. усиленный для циклов в Java
- 4. Параллелизировать MATLAB для цикла для вычисления MLE
- 5. Как параллелизировать симметричных работников?
- 6. Параллелизировать вложенные функции в Python
- 7. JAVA: для циклов и JOptionPane
- 8. Параллелизировать консолидацию списка в Python
- 9. Параллелизировать вложенные петли с openMP
- 10. Проблемы с Java для циклов
- 11. пути к Java для циклов
- 12. Список входов для циклов Java
- 13. Параллелизировать по новой строке?
- 14. Для циклов против циклов while
- 15. Как превратить java для циклов в рекурсию?
- 16. Правильная печать для циклов в Java
- 17. Правила области для циклов в java
- 18. Вставка дополнительного кода в Java для циклов
- 19. Обратно Вложенные для циклов в Java?
- 20. Условное нарушение для циклов в Java
- 21. Как параллелизировать умножение матриц scipy
- 22. Счетчик циклов в Java API
- 23. Параллелизировать задачи с использованием polly
- 24. Понимание циклов в Java Script
- 25. шаблон вложенных циклов java
- 26. Java вложенных циклов
- 27. Java ScheduledExecutorService - перекрытие циклов
- 28. Java-программирование вложенных циклов
- 29. Java Ряд числа циклов
- 30. Java - для циклов после одной итерации
Использование Threads должно помочь? –
@JunedAhsan: В идеале, существует более высокоуровневое решение. – Thilo
Если каждая итерация занимает много времени и не зависит от предыдущих вычислений в цикле, используйте ThreadPoolExecutor и отправляйте вычисления как задачи. – Tala