Как реализовать очередь задач в Concurrency API, если задача определена некоторой функцией, зависящей от входных параметров
Использую Concurrency API для решения задачи перемножения матриц. Изучила информацию и примеры с использованием ConcurrentLinkedQueue и других видов очередей для работы с задачами, но так и не поняла, как можно мою задачу "положить" в такую очередь, если задача - это функция с входными параметрами. Видела только примеры, где элементы очереди - классы.
static void multiply(int row, int col) {
System.out.println("Работает " + Thread.currentThread().getName() + " с ячейкой [" + row + "," + col + "]\n");
for (int i = 0; i < o; i++)
res[row][col] += mA[row][i] * mB[i][col];
}
И как с такой очередью должен взаимодействовать пул потоков, если мне необходимо в функцию передавать каждый раз разные параметры? Не совсем понимаю логику их взаимодействия.
Использую фиксированный пул потоков.
ExecutorService executor = Executors.newFixedThreadPool(threads);