Сравните Java и GPars

Я пытаюсь найти сопоставимый фрагмент кода для Java и GPars, чтобы визуализировать, насколько проще GPars.
Одинаково ли работает следующий код в обоих случаях? Я имею в виду не только вывод, но и то, что происходит «внутри». Или есть способ сократить его еще больше?

Джава:

package java;

public class Main extends Thread {

    public void run() {
        for (int i = 1; i <= 100; i++) {
            System.out.println(i);
        }
    }

    public static void main(String args[]) {
        (new Main()).start();
    }

}

Отличный:

import static groovyx.gpars.GParsPool.withPool

withPool{
    for(int i=1; i<=100; i++) {
        println (i)
    }
}

person Evgenij Reznik    schedule 19.01.2013    source источник
comment
Во фрагменте кода Groovy следует использовать eachParallel вместо for(...)   -  person Phat H. VU    schedule 30.12.2013


Ответы (2)


В первом примере создается новый поток и выполняется цикл for внутри него (цикл проходит полностью, поскольку поток не является потоком демона, поэтому виртуальная машина не завершится, пока поток не завершится)

Второй пример вызывает withPool, затем ничего не делает с этим пулом и просто запускает цикл for в текущем потоке. Вы не используете ни один из методов параллелизма GPars, поэтому withPool можно опустить для получения точно такого же результата.

person tim_yates    schedule 20.01.2013

Нельзя сравнивать Java (язык) и GPars (библиотеку). Вы можете сравнить язык и язык, или библиотеку и библиотеку. Кстати, GPars можно использовать прямо из Java. Вероятно, вы имели в виду сравнение стандартной библиотеки Java с GPars.

person Alexei Kaigorodov    schedule 14.04.2013