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

Concurrence et multi-thread Java Discussion :

Multi-Threading: while(true) ou Timer


Sujet :

Concurrence et multi-thread Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 11
    Par défaut Multi-Threading: while(true) ou Timer
    Bonjour,

    Je travaille en Java sur une application de manipulation d'objet 3D avec un appareil Leapmotion (www.leapmotion.com).

    Concernant la manipulation 3D j'utilise VTK, une librarie OpenSource basée sur OPENGL (bien sur).

    Bref, ma question est plutôt simple:
    Dans un Thread vaut-il mieux:
    • Faire une boucle while(true) et un sleep de quelques millisecondes pour permettre aux autres taches de travailler ?
    • Utiliser la classe Timer répétitif.

    J'aimerais une réponse basée sur les performances afin que mon Thread qui met à jour l'affichage 3D ne soit pas dérangé par le Thread qui récupère les informations du Leapmotion.

    Merci beaucoup.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ca dépend. Il vaut toujours mieux utiliser des wait/notify, des semaphore ou des trucs du genre que de faire des sleeps.

    Le timer, ça dépend de quel timer tu parle

  3. #3
    Membre émérite Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Par défaut
    Pourquoi "while (true)" ? Je n'arrive pas à comprendre pourquoi tout le monde veut faire ça... Il y a pourtant forcément une condition de sortie de la boucle...? Une survivance du "goto" ?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par JoeChip Voir le message
    Pourquoi "while (true)" ? Je n'arrive pas à comprendre pourquoi tout le monde veut faire ça... Il y a pourtant forcément une condition de sortie de la boucle...? Une survivance du "goto" ?
    - Des fois la condition de sortie ne peut être qu'une exception, d'autres fois c'est plus clair avec des return.

    - Il n'existe, a priori, aucun rapport entre goto et boucles (fussent-elles infinies.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre émérite Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Par défaut
    Il n'existe, a priori, aucun rapport entre goto et boucles
    Jamais fait de BASIC ? Mais bon, même sans ça, un "while true" équivaut à un " à la fin de la boucle, goto l'endroit du while". Et on peut toujours sortir de la boucle sur une condition, return ou pas, break ou pas, exception ou pas... Et tu ne répond donc pas à ma question... Pour moi, sortir d'un thread à l'arrache est forcément une drôle d'idée, qui devrait être beaucoup plus rare que sortir clean. Donc je ne comprend pas pourquoi le "while true" semble aussi systématique dans les threads. Donc j'aimerais qu'on m'explique, puisque quelque chose semble m'échapper...?

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Ah, si on parle du fait qu'il tend à apparaître systématiquement, c'est dû au fait que les gens ne se rendent pas compte que le programme est censé s'arrêter un jour, certes.
    Moi je parlais que des cas, plus rares en effet, où sortir autrement se justifie.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Transformation boucle while en action multi-thread
    Par Pedro4 dans le forum Concurrence et multi-thread
    Réponses: 5
    Dernier message: 01/02/2012, 12h04
  2. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  3. [Thread] Thread vs while(true)
    Par plutonium719 dans le forum Concurrence et multi-thread
    Réponses: 7
    Dernier message: 20/09/2006, 10h30
  4. [Kylix] exception qtinft.dll et multi-threading
    Par leclaudio25 dans le forum EDI
    Réponses: 3
    Dernier message: 27/03/2003, 18h09

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