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 :

Impl�mentation pthread_create() et ainsi de suite


Sujet :

Threads & Processus C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm� Avatar de Array
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    210
    D�tails du profil
    Informations personnelles :
    �ge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 210
    Par d�faut Impl�mentation pthread_create() et ainsi de suite
    Bonjour,

    Je fais en ce moment un programme qui agit ainsi:
    1- Un client se connecte
    2- Le processus verifie si le client a un identifiant (une sorte de "serial number")
    3- S'il n'en a pas, le serveur ouvre un thread en mode "detached"
    4- Ledit thread communique avec un autre serveur, au moyen de sockets, afin de r�cup�rer un nouveau id qui est *unique*
    5- Le thread se termine ensuite en enregistrant le id sur le client
    6- Pendant ce temps, la routine de connexion s'est continu�e juste apr�s avoir cr�� le thread

    Voil�...
    Je me demande, est-ce que c'est bien de cr�er un nouveau thread � chaque fois qu'un client se connecte (un maximum de 64 clients peuvent �tre connect�s en m�me temps), ou est-ce que je devrais avoir un unique thread avec une "file d'attente" (un tableau) dans lequel je stocke le "client_id" (le client id est diff�rent de l'unique id en question, c'est juste un num�ro de client allant de 1 � CLIENT_MAX, qui vaut ici 64), puis envoyer un message � cet unique thread comme de quoi la file d'attente a chang�e?

    J'aimerais que vous me conseillez. Une chose est sure... il est important que la routine de connexion n'attende pas la r�ponse du serveur fournissant les serial numbers... vous comprenez!

    Merci beaucoup!

    Cordialement,
    Array

  2. #2
    Membre tr�s actif
    Profil pro
    professeur des universit�s � la retraite
    Inscrit en
    Ao�t 2008
    Messages
    364
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : professeur des universit�s � la retraite

    Informations forums :
    Inscription : Ao�t 2008
    Messages : 364
    Par d�faut
    A noter en tout cas qu'� la place du pthread_create() tu peux utiliser les nouvelles fonctionnalit�s du C++11 :
    http://www.justsoftwaresolutions.co....g-threads.html

  3. #3
    Membre Expert Avatar de Trademark
    Profil pro
    Inscrit en
    F�vrier 2009
    Messages
    762
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 762
    Par d�faut
    Salut,

    Citation Envoy� par Array Voir le message
    est-ce que c'est bien de cr�er un nouveau thread � chaque fois qu'un client se connecte
    Non ce n'est pas "bien", soit tu n'utilises qu'un thread avec un select (ou �quivalent), soit tu utilises un pool de thread, c'est-�-dire N threads cr��s � l'avance (du coup il n'y a pas le co�t de la destruction et construction de ces threads, sauf au d�part et � la fin).

    Il faut que tu fasses attention que ces N threads ne soient jamais bloqu� par un client. Pour ce faire, tu peux plut�t consid�rer que les threads g�rent des t�ches plut�t que des clients.

  4. #4
    Membre confirm� Avatar de Array
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    210
    D�tails du profil
    Informations personnelles :
    �ge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 210
    Par d�faut
    Merci beaucoup Trademark.

    Je voudrais seulement aller un peu plus loin... pourquoi est-ce que c'est d�conseill� de proc�der ainsi... je veux dire, si je cr�e mes threads en mode d�tach� et que j'en cr�e un � chaque fois qu'un client se connecte, le thread finira par lui m�me et la m�moire sera lib�r�e non?

    Est-ce � cause que la cr�ation d'un thread demande trop de CPU?
    Est-ce parce qu'il y a un nombre limit�s de threads que le processeur peut g�rer?

    Aussi, peu tu me dire...
    soit tu n'utilises qu'un thread avec un select
    Qu'est-ce que cela veut dire?
    EDIT: Oh select()... tu veux dire pour les descrpteurs de fichiers?

    Pour �tre honn�te je crois qu'un seul thread suffirait. Le plus important est que la routine de connexion ne soit pas bloqu�e par l'attente de la communication au server de serials... on peut avoir un certain d�lai, raisonnable, avant qu'on assigne le serial � l'utilisateur.

    Merci!

Discussions similaires

  1. Impl�menter un lien "Lire la suite"
    Par CinePhil dans le forum jQuery
    R�ponses: 7
    Dernier message: 14/06/2013, 01h06
  2. R�ponses: 2
    Dernier message: 02/09/2012, 19h54
  3. Pb BDE suite a passage en Windows 2000 pro
    Par ARIF dans le forum Paradox
    R�ponses: 4
    Dernier message: 18/11/2002, 11h39
  4. R�ponses: 2
    Dernier message: 06/07/2002, 12h36
  5. Impl�mentation des fonctions math�matiques
    Par mat.M dans le forum Math�matiques
    R�ponses: 9
    Dernier message: 17/06/2002, 16h19

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