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

C++ Discussion :

Questions sur les threads: g�n�ralit�s


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Par d�faut Questions sur les threads: g�n�ralit�s
    bonjour

    actuellement je cherche � mettre en ouevre une appli multithread.

    mon probl�me se situe dans un choix de structure:

    soit une fonction lire() qui va regulierement lire un evenement (c'est cette fonction qui tourne en thread)

    soit un timer qui va synchroniser mon systeme.

    est il plus judicieux de:
    a) faire une boucle infini dans lire()et synchroniser via une condition
    b) relancer le thread lire() � chaque fois (timer: 100ms environ)

    en bref je recr�e mon thread ou je boucle dans la fonction de mon thread ??

    est ce que dans les 2 cas je suis coh�rent avec l'utilisation de threads, et sachant que lire() va faire ca frequemment (50ms), qu'est ce qui sera le + efficace ?

    (c'est la boucle sans fin qui me fait un peu peur en fait )

    merci d'avance !

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Je pense qu'il sera plus efficace de faire une boucle NON infinie qui synchronisera via un �v�nement et qui se terminera aussi via un �v�nement.
    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 �m�rite Avatar de J�r�my Lefevre
    Homme Profil pro
    D�veloppeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : Luxembourg

    Informations professionnelles :
    Activit� : D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Par d�faut
    hmm une boucle oui mais tu doit toujour prevoir un arret!!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Par d�faut
    merci pour vos conseils.

    effectivement j'ai bien des s�curit�s dans le code qui empechent une race condition, ou un lock, cependant, etant donn� la frequence de lire() qui s'approche des 50ms, j'ai peur de ne pas tenir la cadence si je detruis et refais un thread toute les 50ms (sans compter que j'ai 5 autres threads qui tournent en parall�le, mais reveill�s toutes les 500ms par contre).

    vous en pensez quoi au vu de ces nouvelles information s ?

  5. #5
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Toujours pareil, tu minimises autant que possible les cr�ations de threads. Donc, il vaut mieux utiliser une boucle.
    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.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Par d�faut
    Citation Envoy� par M�dinoc
    Toujours pareil, tu minimises autant que possible les cr�ations de threads. Donc, il vaut mieux utiliser une boucle.
    ah super, je viens de relire ta premiere r�ponse je n'avais pas bien compris ton point de vue (je pensais que tu etais contre la boucle) , effectivement il est interessant.

    Merci � tous

  7. #7
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    reacteur/select/fonction-win32-qui-va-bien ?
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Par d�faut
    Citation Envoy� par Luc Hermitte
    reacteur/select/fonction-win32-qui-va-bien ?
    ???

    pas compris

    ceci dit j'utilise les pthreads pour cette appli, meme si elle deale avec des mfc pour l'utilisation d'un ocx de controle, j'esp�re bien � terme utiliser une dll � la place de l'ocx, et ainsi porter cette appli en ligne de commande voire sous linux (la librairie serait port�e aussi), si les perfs le demandent.

  9. #9
    Expert confirm�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    D�cembre 2003
    Messages
    3 549
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 3 549
    Par d�faut
    select est une fonction qui te permet de savoir si il y a des donn�es � lire sur un flux et de bloquer jusqu'� un certain temps

  10. #10
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Pattern dont des impl�mentations sont portables.
    The Design and Use of the ACE Reactor (pdf)

    Comparing Two High-Performance I/O Design Patterns

    Sp�cificit� *nix / POSIX pour �tre plus exact, IIRC
    man select

    Sp�cificit� win32
    WaitForMultipleObjects() (j'ai eu la flemme de faire le google vers la msdn)

    Bonnes lectures.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Question sur les threads
    Par The eye dans le forum G�n�ral Dotnet
    R�ponses: 4
    Dernier message: 14/02/2007, 14h32
  2. Question sur les threads
    Par thebloodyman dans le forum Concurrence et multi-thread
    R�ponses: 3
    Dernier message: 22/01/2007, 07h28
  3. Quelques questions sur les threads
    Par benj63 dans le forum C++Builder
    R�ponses: 28
    Dernier message: 21/11/2005, 13h27
  4. Question sur les threads
    Par Linio dans le forum Concurrence et multi-thread
    R�ponses: 10
    Dernier message: 21/10/2005, 09h08
  5. Question sur les threads
    Par nicolas66 dans le forum MFC
    R�ponses: 4
    Dernier message: 03/06/2005, 20h57

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