Ajout de ProgressionOrbisGisManager

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Ajout de ProgressionOrbisGisManager

Nicolas F.
Administrator
L'algorithme de propagation (PropagationProcess.java) est parallélisé et contient de nombreuses boucles. J'avais du mal à pouvoir renseigner l'objet IProgressMonitor.

C'est pour cela que j'ai développé ProgressionOrbisGisManager.java et ProgressionProcess.java qui permettent de gérer automatiquement (presque) le calcul de la progression de tout les processus.

Voici un exemple d'utilisation
public evaluate(IProgressMonitor pm)
{
    nbcell=400;
    ProgressionOrbisGisManager pmManager=new ProgressionOrbisGisManager(nbcell, pm);
    pmManager.start(); //Start the manager thread
    for(int i=0;i<nbcell;i++)
    {
        int nbsubcell=100;
        ProgressionProcess pp=pmManager.NextSubProcess(nbsubcell);
        for(int j=0;j<nbsubcell;j++)
        {
            pp.NextSubProcessEnd();
            Thread.sleep(6);
        }
    }
    pmManager.stop();
}

Il n'y a pas de limite au nombre de boucle imbriqué. Le IProgressMonitor est mis à jour toute les secondes par défaut.
Dans mon cas ca a été très utile. Je peut avoir dans les 256 processus en parallèle et chacun avec un nombre de tâche propre.

http://geosysin.iict.ch/irstv-trac/changeset/10661

Je débute en multi-thread java, donc si vous avez des observations merci de m'en faire part.
Reply | Threaded
Open this post in threaded view
|

Re: Ajout de ProgressionOrbisGisManager

Alexis.G
J'ai pas de remarques particulières  sur le code(mais je suis pas non
plus un spécialiste du multi-threading ^_^).

Par rapport au formattage du code, par contre, j'ai une remarque
d'ordre général. En java, par convention, on utilise pas de majuscule
comme première lettre du nom des méthodes. Les noms avec une majuscule
en première lettre sont "réservés" aux classes et aux constantes (les
machins public final static), constantes dont le nom est entièrement
écrit en majuscule, pour le coup.

Ça peut paraître dérisoire (ça ne causera pas de problèmes à la
compilation ou à l'exécution), mais c'est une stratégie de nommage
formalisée dans la description du langage, du coup tous les
développeurs java vont s'attendre à ça ;-).
Reply | Threaded
Open this post in threaded view
|

Re: Ajout de ProgressionOrbisGisManager

Nicolas F.
Administrator
D'accord je vais mettre à jour. J'ai un peu de mal à m'y faire à toutes les conventions.
Reply | Threaded
Open this post in threaded view
|

Re: Ajout de ProgressionOrbisGisManager

Alexis.G
Merci beaucoup :-)

c'est sûr que c'est un coup à prendre... et c'est d'autant plus dur
que, forcément, ça varie d'un langage à un autre... :-p



--
OrbisGIS supporter.