IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

tâches en parallèle [Timer]


Sujet :

Java

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Par défaut tâches en parallèle [Timer]
    Bonjour
    Je voudrai traiter des entiers (int) d'un tableau en parallèle.
    Est ce que quelqu'un a une idée comment le faire avec les "Timer" ?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 095
    Par défaut
    Thread tu veux surement dire?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Par défaut
    Oui exactement

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    La question que je me pose c'est pourquoi veux-tu paralléliser ton traitement ?
    Si c'est pour obtenir de meilleur performance je suis pas sur que ce soit la bonne solution (en Java en tout cas) :

    • si ton processeur possède un seul cœur, tu ne gagneras rien, au contraire ;
    • si ton processeur en possède plusieurs, tu peux toujours essayer (en créant un thread pour chaque cœur et en découpant ton tableau en N partie, N étant le nombre de coeur) mais ce topic me fait penser que ça pourrait même être pire ; mais tu peux toujours tester.


    Mais comme souvent, tu gagneras probablement plus à revoir ton algorithme de traitement sur tes entiers !

  5. #5
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 095
    Par défaut
    Tout dépend de ce qu'il a faire. C'est sur qu'il faut d'abord penser a un bon algorithme.

    Mais franchement je doute qu'il n'ait qu'un coeur, et qu'en parallélisant ca soit pire... (sauf si tout les thread se marchent dessus pour une ressource, etc...)
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre chevronné Avatar de NeptuS
    Profil pro
    Inscrit en
    Août 2005
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 392
    Par défaut
    Mes souvenirs remontent à loin et je n'ai pas lu l'article.
    (ça commence mal, je sais)

    Mais il me semble que c'est plus une question d'ordonnancement qu'une question de nombre de coeurs :
    - Si le / les coeurs sont occuppés à une tâche plus prioritaire, il n'aura de toutes façons pas l'occasion de les occupper comme il le veux
    - Si le / les coeurs sont libres, alors il pourra faire tourner au moins autant de Thread en parallèle (ceci sans compter les méthodes synchronized, on est d'accord)
    - Sur chacun des coeurs, l'occupation de l'activité n'est pas continue : elle est séquencée. Ainsi, plusieurs Threads peuvent être exécutés "en parallèle" mais pas "en même temps" sur le même coeur.

    Donc, comme le dit wax78, tout dépend de ce qu'il a à faire. Par exemple, plus tu auras d'I/O, moins ton coeur sera sollicité. Et plus il a de temps libre, plus la parallélisation sera optimisée.
    En revanche, dans le cas de calculs bruts, plus de Thread que de coeurs n'aura comme effet, au mieux, que de stacker les tâches à faire. Au pire, engendrer des déplacements peu coûteux mais trop nombreux de données en mémoire.

    Je me trompe ?

  7. #7
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Il faut également prendre en compte le problème de "volatilité" des données.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

Discussions similaires

  1. [SP-2010] Inserer Tache dans flux de travail SP Designer ajoute une tâche en parallèle
    Par Mihnea Niculescu dans le forum SharePoint
    Réponses: 0
    Dernier message: 20/03/2012, 19h56
  2. Executer des tâches en parallèle [Timer]
    Par zakarota dans le forum Général Java
    Réponses: 1
    Dernier message: 06/07/2011, 14h01
  3. Réponses: 4
    Dernier message: 06/07/2009, 09h46
  4. Réponses: 2
    Dernier message: 18/06/2009, 09h30
  5. [Parallèle] Timer / évenements
    Par oodini dans le forum C++
    Réponses: 2
    Dernier message: 12/11/2008, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo