У меня есть массив, который я хочу обрабатывать разными способами параллельно, чтобы ускорить общее время выполнения моей программы. Вот как выглядит программа при выполнении всех последовательно.Параллельный массив процессов Java
public static void main(String[] args) {
ArrayList<MyObject> array = getLongListOfObjects();
ArrayList<MyObject2> array2 = new ArrayList<MyObject2>();
for(MyObject object : array) {
array2.add(firstProcessingMethod(object);
}
ArrayList<MyObject3> array3 = new ArrayList<MyObject3>();
for(MyObject2 object : array2) {
array3.add(secondProcessingMethod(object);
}
ArrayList<MyObject4> array4 = new ArrayList<MyObject4>();
for(MyObject3 object : array3) {
array4.add(thirdProcessingMethod(object);
}
for(MyObject4 object : array4) {
System.out.println(object.toString());
}
}
Другими словами, я хочу, чтобы начать обработку массива с firstProcessingMethod()
и после первой итерации я могу начать работать secondProcessingMethod()
и thirdProcessingMethod()
в то время как остальная часть массива по-прежнему проходит через firstProcessingMethod()
.
Что такое ThisClass :: ссылка на? – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Это относится к классу, который содержит эти методы. Это похоже на передачу метода в качестве параметра. Для получения дополнительной информации см. [Этот вопрос] (http://stackoverflow.com/questions/20001427/double-colon-operator-in-java-8) – 4castle