Необходимо написать два метода, которые делают следующее:
- Создают одномерный длинный массив, например:
static final int SIZE = 10 000 000;
static final int HALF = size / 2;
float[] arr = new float[size]. - Заполняют этот массив единицами.
- Засекают время выполнения: long a = System.currentTimeMillis().
- Проходят по всему массиву и для каждой ячейки считают новое значение по формуле:
arr[i] = (float)(arr[i] * Math.sin(0.2f + i / 5) * Math.cos(0.2f + i / 5) * Math.cos(0.4f + i / 2)); - Проверяется время окончания метода System.currentTimeMillis().
- В консоль выводится время работы: System.out.println(System.currentTimeMillis() - a).
Отличие первого метода от второго:
● Второй разбивает массив на два массива, в двух потоках высчитывает новые значения ипотом склеивает эти массивы обратно в один.