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 :

Plusieurs points actifs dans le code


Sujet :

Threads & Processus C++

  1. #1
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut Plusieurs points actifs dans le code
    Bonjour,
    J’ai plusieurs fonctions (1 fonction par fichier) qui ce lance a la suite des autres

    F1 est la fonction principale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Void F1()
    {
    While (1)
    {
    …
    F2() ;
    	}
    }
     
    Void F2()
    {
    	…
    F3() ;
     
    }
     
    Void F3()
    {
    	…
    F4() ;
     
    }
     
    …
    Ce que je voudrais faire :
    Dans F1(), je voudrais retourner au début de mon while(1) lorsque je lance F3() dans F2() mais que F3() ce lance quand meme

    Des idées ?
    merci

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par cortex59 Voir le message
    Ce que je voudrais faire :
    Dans F1(), je voudrais retourner au début de mon while(1) lorsque je lance F3() dans F2()
    Je n'ai pas compris ce que tu voulais faire, tu peux réexpliquer ton besoin ?
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut
    je voudrais revenir au debut de mon while dans f1() lorque je lance f3() dans f2()

    car comme mes fonction s'emboite je n'est pas de point de sortie

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Et F3 continue de s'exécuter pendant que tu reviens à F1 -> multi-thread. Sinon, ton retour se fera automatiquement au fur et à mesure que tu termines les fonctions.

  5. #5
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut
    je reviendrais au debut du while que si j'ai fini F2 + F3 + F4 + ... car il s'embrique les un aux autres.
    c'est a dire que f1 ce termine quand f2 et fini mais f2 ce termine quand f3 se termine et ainsi de suite


    en effet je voudrais etre dans plusieur fonction en meme temps

    des que F2 lance F3 revenir au debut du while dans F1

    merci

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Alors ce que tu veux faire, c'est de la programmation multi thread : avoir plusieurs instance d'exécution du même code simultanément (ou presque).

    Un début de lecture : Initiation à la programmation multitâche en C avec Pthreads
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  7. #7
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut
    est ce que je pourrais executer plusieurs fichiers.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void START ()
    {
         //Lancer les fonctions
         F1();
         F2();
         F3();
         ...
    }
    je voudrais lancer ces fonction en meme temps.
    cad que je veut pas attendre que f1 soit fini pour lancer f2

    est ce que vous pouvez me filler des solutions
    je commence a regarde la doc multi THred

    merci

  8. #8
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Bonjour,
    Voici une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void START ()
    {
         //Lancer les fonctions
         DemarrerThread(F1);
         DemarrerThread(F2);
         DemarrerThread(F3);
         ...
    }
    DemarrerThread dépendra du mécanisme de thread que tu vas mettre en place. Il faut être vigilant à l'accès possiblement concurrent aux données, aux éventuels mécanismes de synchronisations et à la terminaison.

  9. #9
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Points : 103
    Points
    103
    Par défaut
    plusieurs question a la suite du precedent mess

    - Y a t'il un include a utiliser?
    - est ce que je change la declaration de met fonction


    cette solution permet de lancer toutes les fonctions en meme temps ?


    Pour l'instant l'erreur suivante est apparue :
    la variable F1 n'est pas déclarée
    merci

  10. #10
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    La réponse de 3DArchi était une réponse pour te donner l'esprit de ce qu'il faut faire. En l'état, si tu recompiles comme cela, c'est sûr que cela ne va pas marcher.

    Tu as un minimum de travail à faire au préalable car une architecture multi thread, cela ne se sort pas comme cela, il y a pleins de détails à régler comme les accès concurrents par exemple. As tu regardé les liens sur les tutoriels ?
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

Discussions similaires

  1. [VS2010] Point de débug qui rajoute caractère dans le code
    Par Oberown dans le forum Visual Studio
    Réponses: 2
    Dernier message: 01/07/2011, 09h54
  2. [XL-2003] Vb auto récupération de valeur dans le code source de plusieurs pages web
    Par Supremereboot dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 20/04/2011, 12h36
  3. Signification des trois points dans un code
    Par deubelte dans le forum Débuter
    Réponses: 5
    Dernier message: 19/03/2010, 15h45
  4. Réponses: 1
    Dernier message: 03/06/2008, 09h27
  5. Réponses: 11
    Dernier message: 05/04/2007, 13h13

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