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

Threads & Processus C++ Discussion :

Multi Thread et boucle infini...


Sujet :

Threads & Processus C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 101
    Points : 59
    Points
    59
    Par défaut Multi Thread et boucle infini...
    Bonjours à tous ,

    Voici mon problème :

    Je souhaiterais savoir si il existe une fonction non bloquante ( contrairement à 'fget' ou 'getch'), pour récupérer une saisi clavier afin de sortir d'une boucle infini.

    Si quelqu'un peu m'aider , Merci...

  2. #2
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Points : 661
    Points
    661
    Par défaut
    pourquoi tu veux pas attendre l'entrée de l'utilisateur ?

    si c'est pour faire autre chose durant ce temps -> thread
    si c'est pour recevoir un event, message -> pompe à message
    sinon je vois pas vraiment
    Pour les details, cherche tout seul !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 101
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par ZaaN
    si c'est pour faire autre chose durant ce temps -> thread
    C'est tout à fais ça ... J'arrête mon 'Main' avec un sleep et mes threads se lancent... tout sa fonction très bien ...
    Le problème c'est que je doit être ds une boucle infini pour ne pas sortir du programme et lancé de façon récursive toutes mes taches ...
    Je souhaite sortir de mon programme qu'à une seul condition :
    la saisie d'une lettre ou d'un mot sur le clavier.

  4. #4
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut
    Tu met ta boucle infini dans un thread et tu attend l'entrée utilisateur dans ton main.
    J'aime pas les épinards... Mais alors pas du tout

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 101
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par Higestromm
    Tu met ta boucle infini dans un thread et tu attend l'entrée utilisateur dans ton main.
    Bonne idée ... mais je pense que sa reviend au même puisque le 'Main' doit avoir la plus haute priorité, après mon sleep je recupère la main dans le 'Main', donc si j'utilise un 'fgets' je vais figuer le programme .

  6. #6
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut
    Citation Envoyé par mickael777
    Citation Envoyé par Higestromm
    Tu met ta boucle infini dans un thread et tu attend l'entrée utilisateur dans ton main.
    Bonne idée ... mais je pense que sa reviend au même puisque le 'Main' doit avoir la plus haute priorité, après mon sleep je recupère la main dans le 'Main', donc si j'utilise un 'fgets' je vais figuer le programme .
    Le main n'as pas priorité sur un thread, les deux processus sont executés en meme temps. Par contre si tu lit sur le clavier dans ta thread, le main qui aura recu l'odre de lecture en premier passera en premier.
    J'aime pas les épinards... Mais alors pas du tout

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 101
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par Higestromm
    Le main n'as pas priorité sur un thread, les deux processus sont executés en meme temps. Par contre si tu lit sur le clavier dans ta thread, le main qui aura recu l'odre de lecture en premier passera en premier.
    Oui... tu dois très certainement avoir raison lorsque tu travail en C++ (pur et dur) ... Moi je travail en avec un C++ d'un OS temps réel : "QNX"... Donc je ne pense pas me tromper (mais c'est possible ), lorsque je dis : mon "Main" a la priorité MAX .

  8. #8
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut
    Heu c'est ptet con ce que je dit mais si ton OS ne gère pas le multithread... comment est il possible de créer des Thread ?
    J'aime pas les épinards... Mais alors pas du tout

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 101
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par Higestromm
    Heu c'est ptet con ce que je dit mais si ton OS ne gère pas le multithread... comment est il possible de créer des Thread ?
    Ben en faite QNX c'est fait pour faire du multi-tache, des sémaphores , des mutex, des timers, des mémoires de partages... Le plus gros soucis avec cet Os c'est le mec derrière l'ordi ...

    Concernant la création d'un système multi-tache sous QNX il faut procéder de la mannière suivante :

    Pour pouvoir créer plusieurs taches et leur donner des priorités, il faut tout d'abord donner une priorité au « main( ) » qui est supérieur à la priorité de l'ensemble des taches....

  10. #10
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut
    Essai de voir si u peux pas chopper le systeme d'evenement de la bibliotheque SDL alors. Avec elle tu peux lire les evenements claviers de manière non blocante.
    J'aime pas les épinards... Mais alors pas du tout

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/06/2015, 14h58
  2. pool de thread avec des tâches qui boucle infiniment
    Par archer dans le forum Threads & Processus
    Réponses: 2
    Dernier message: 15/04/2013, 03h39
  3. 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
  4. esque un thread stop une boucle infinie?
    Par aefmaaradji84 dans le forum C++/CLI
    Réponses: 5
    Dernier message: 18/07/2007, 09h42
  5. [Thread]Boucle infinie sans 99% du proc
    Par dinver dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 18/12/2005, 17h15

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