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 :

question article "Création d'un serveur multi-threads en C++"


Sujet :

Threads & Processus C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Points : 406
    Points
    406
    Par défaut question article "Création d'un serveur multi-threads en C++"
    Bonjour,

    Dans le code de cet article sur les threads en C++, je me pose une question :

    la création du thread :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CreateThread(NULL, 0,&serveur::ThreadLauncher, &p,0,NULL);
    donne l'adresse d'une structure, p, créé en début de fonction avant la boucle while.
    Or cette variable p est modifié à chaque client. Est ce qu'il ne va pas y avoir un problème dans les thread créés précedement si la variable est modifié en cours de route ?
    Il ne faudrait pas creer une variable par thread, et celui-ci se chargerai de la détruire ?


    Deuxième question : comment marche, en c++, une boucle quasi infini comme dans la fonction start().
    Un programme qui va créer cette classe et apeler serveur.start() ne va pas bloquer sur cette fonction vu qu'elle ne finit jamais ?

    merci

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Oui, il faut en créer une par thread.

    PS: utilise _beginthreadex() plutôt que CreateThread().

    La fonction start() se termine si la fonction pause() est appelée par un autre thread.
    Ce qui signifie:
    • D'une part, que la fonction start() est absolument mal nommée, elle devrait s'appeler run() ou main_loop().
    • Que la fonction pause() devrait plutôt s'appeler stop()

    De plus, la variable running devrait porter le qualificateur volatile, sans quoi le serveur risque de ne jamais voir que la fonction pause a été appelée!
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Points : 406
    Points
    406
    Par défaut
    merci pour les précisions.
    Pour le PS, de toute façon j'utlise les pthread donc je change cette partie

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

Discussions similaires

  1. Serveur multi thread - Question pratique
    Par jo7714 dans le forum C
    Réponses: 6
    Dernier message: 05/12/2012, 21h41
  2. création d'un serveur multi-thread
    Par james23 dans le forum Multithreading
    Réponses: 9
    Dernier message: 30/03/2009, 17h11
  3. question pour la création d'un serveur avec asio
    Par bobymaw dans le forum Boost
    Réponses: 1
    Dernier message: 22/05/2008, 22h16
  4. [C#] Création d'un serveur multi-threader
    Par Yotho dans le forum Windows Forms
    Réponses: 4
    Dernier message: 29/12/2006, 11h39
  5. Création d'un Serveur Multi Client
    Par N*E*R*D dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 16/03/2004, 17h13

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