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

Langages de programmation Discussion :

Question sur la synchronisation des threads.


Sujet :

Langages de programmation

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Question sur la synchronisation des threads.
    Bonsoir,
    Voici mon probleme, pour un travail, j'ai du coder une routine qui calcul les nombres de fibonnaci. Pour ce faire, j'ai un tableau partagé entre mes threads qui contient soit la résultat pour fibo(n) ou vide. Je me demandais si était justifiable d'utiliser un mutex pour vérouiller mon tableau lorsqu'un thread accède a celui-ci. Puisque plusieurs threads peuvent calculer la meme valeur, meme si deux threads modifie la valeur en meme temps, le resultat restera le meme. Pour fibo(n), on lance un pthread qui calcul fibo(n-1) et un autre pour fibo(n-2). En terme de performance, est-il avantageux de ne pas mettre de mutex?

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: Question sur la synchronisation des threads.
    Citation Envoyé par sebastieng
    <...> Pour ce faire, j'ai un tableau partagé entre mes threads qui contient soit la résultat pour fibo(n) ou vide. Je me demandais si était justifiable d'utiliser un mutex pour vérouiller mon tableau lorsqu'un thread accède a celui-ci <...>
    Cest plus un problème de conception que de langage C qui ne sait pas ce qu'est un thread...

    http://emmanuel-delahaye.developpez.com/pthreads.htm
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut Re: Question sur la synchronisation des threads.
    Bonjour,
    Citation Envoyé par Emmanuel Delahaye
    Cest plus un problème de conception que de langage C
    Problème résolu

    Citation Envoyé par sebastieng
    Je me demandais si était justifiable d'utiliser un mutex pour vérouiller mon tableau lorsqu'un thread accède a celui-ci. Puisque plusieurs threads peuvent calculer la meme valeur, meme si deux threads modifie la valeur en meme temps, le resultat restera le meme.
    Si deux (ou plusieurs) threads sont amené à partager une ressource en écriture, il est fortement conseillé d'utiliser un système de verrou.
    Par contre je n'ai pas bien compri l'avantage d'utiliser les threads pour le calcul d'une suite

  4. #4
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut Re: Question sur la synchronisation des threads.
    Citation Envoyé par gege2061
    Par contre je n'ai pas bien compri l'avantage d'utiliser les threads pour le calcul d'une suite
    En effet c'est bizarre
    On peut faire beaucoup plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Fonction Fibo&#40;N &#58; Entier&#41; renvoie un Entier;
      Soit Fibos un Tableau d'Entiers à N+1 éléments;
      Soit I un Entier;
    
      Fibos&#91;0&#93; <- 1;
      Fibos&#91;1&#93; <- 1;
      Pour I de 2 à N &#58;
        Fibos&#91;I&#93; <- Fibos&#91;I-1&#93; + Fibos&#91;I-2&#93;;
      Fin Pour;
      Résultat <- Fibos&#91;N&#93;;
    Fin Fonction;
    On peut aussi optimiser en espace utilisé plutôt qu'en temps d'exécution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Fonction Fibo&#40;N &#58; Entier&#41; renvoie un Entier;
      Soit Fibos un Tableau d'Entiers à 2 éléments;
      Soit I un Entier;
    
      Fibos&#91;0&#93; <- 1;
      Fibos&#91;0&#93; <- 1;
      Pour I de 2 à N &#58;
        Fibos&#91;I % 2&#93; <- Fibos&#91;&#40;I-1&#41; % 2&#93; + Fibos&#91;I % 2&#93;;
      Fin Pour;
      Résultat <- Fibos&#91;N % 2&#93;;
    Fin Fonction;
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    En fait il n'y a aucun avantage pour l'utilisation des threads, c'est simplement un tp pour nous aider a comprendre les threads. Meme que c'est tres loin d'etre avantageux puisque lancer pas loin de 4000 thread pour calculer le 17e nombres c un peu beaucoup Il s'agissait de modifier une methode recursive pour qu'elle utilise les threads pour nous faire pratiquer la synchronisation et les pthreads.

Discussions similaires

  1. Question sur la synchronisation des threads
    Par zpico dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 22/02/2012, 14h15
  2. Question sur l'execution des threads
    Par khaigo dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 28/10/2009, 18h32
  3. Question sur le comportement des threads
    Par Krishna dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 12/01/2009, 21h56
  4. question sur le comportement des threads
    Par rose-bonbon dans le forum CORBA
    Réponses: 4
    Dernier message: 27/10/2004, 18h00
  5. question sur le format des images ..
    Par vbcasimir dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 28/08/2003, 12h08

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