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 :

Programmation multithread pour débutant


Sujet :

C++

  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut Programmation multithread pour débutant
    Je travaille avec une API (moteur de rendu), et il va me falloir exploiter ses capacités multithreads.

    Bien qu'ayant vu le multithread d'un point du vue théorique (mutex, interblocage, etc.), je n'en ai encore jamais fait en pratique. Il semble qu'il serait de bon ton d'utiliser boost pour cela.

    Auriez-vous des didacticiels à me conseiller pour la programmation multithreads ?
    Je précise que j'ai besoin de faire du Windows / Linux...

    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
    Un livre que j'avais adoré sur ce sujet : Win32 Multithreaded programming chez O'Reilly

    Par contre, c'est en anglais

  3. #3
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Je crains que tu ne tombes des nues assez vite...

    Si tu parles de "moteur de jeu" alors oui le multithread est obligatoire (ne serait-ce que pour gérer la partie réseau ou 'input'), et même recommandé pour découpler la simulation de l'affichage, ou encore la génération de scene-graph.

    Si tu parles vraiment de "moteur de rendu", et donc, avec d'un coté un scene-graph et de l'autre un driver de GPU, alors le multi-thread est à laisser de coté... Il ne fera que ralentir (quand ce n'est pas crasher).

    C'est même un des rares cas ou j'utilise un semaphore style readers/writer inversé (un seul lecteur, le moteur de rendu, et plusieurs écrivains, dont 90% viennent du physics-engine).

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    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 381
    Points : 41 578
    Points
    41 578
    Par défaut
    ram_0000 : Ce livre est-il spécifique à Win32 ?

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut Oups !
    Désolé pour tout le monde, mais je pensais que le forum allait m'envoyer un mail en cas de réponse. :-|

    Citation Envoyé par nicroman Voir le message
    Je crains que tu ne tombes des nues assez vite...
    Si tu parles vraiment de "moteur de rendu", et donc, avec d'un coté un scene-graph et de l'autre un driver de GPU, alors le multi-thread est à laisser de coté... Il ne fera que ralentir (quand ce n'est pas crasher).

    C'est même un des rares cas ou j'utilise un semaphore style readers/writer inversé (un seul lecteur, le moteur de rendu, et plusieurs écrivains, dont 90% viennent du physics-engine).
    En fait, j'utilise un moteur de rendu déjà fait, qui est multithread, et je dois l'interfacer avec Maya. Seulement, j'ai un petit problème pour récupérer les buckets (je n'en récupère qu'un sur quatre). Je me demande si ça ne viendrait pas d'une mauvaise connaissance du sujet de ma part...

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    ram_0000 : Ce livre est-il spécifique à Win32 ?
    Avec un peu de (mal?)chance: oui. Si le livre est un peu profond, il contiendra des informations qui sont spécifiques à Windows (notamment toutes les méthodes de synchronisation de thread). D'après ce résumé (clicky sur "full description"), c'est le cas.

    Pour trouver un pseudo-équivalent plus générique, cf. Pthread Programming chez O'Reilly (aussi) - sachant que, nécessairement, ce livre met de coté toute la partie système pour s'intéresser à l'interface offerte par la librairie pthread.

    A l'heure actuelle, il est difficile d'étudier la programmation multi-thread sans s'intéresser à la façon dont elle est implémentée sur le système cible. Il est possible (mais peu probable) que cela change dans un futur proche, notamment avec l'arrivée du futur standard C++ - fortement axé sur la programmation multi-thread.

Discussions similaires

  1. MultiThread pour débutant?
    Par Rayfloyd dans le forum Débuter
    Réponses: 6
    Dernier message: 31/05/2011, 11h46
  2. Programme flash pour débutant
    Par qltmi dans le forum Flash
    Réponses: 1
    Dernier message: 20/10/2008, 11h14
  3. Nouveau programme pour débutant
    Par gregouz59 dans le forum Débuter
    Réponses: 4
    Dernier message: 02/06/2008, 17h45
  4. programme awk pour débutant
    Par zedude dans le forum Windows
    Réponses: 1
    Dernier message: 29/05/2007, 15h06
  5. aide petit programme pour débutant
    Par kartp0rqx dans le forum C
    Réponses: 16
    Dernier message: 14/10/2005, 19h31

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