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

Windows Discussion :

[Multithreading] Accès de plusieurs thread à une même fonction


Sujet :

Windows

  1. #1
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 126
    Points : 54
    Points
    54
    Par défaut [Multithreading] Accès de plusieurs thread à une même fonction
    Bonjour,

    Dans un post précédent, je disais avoir un programmé un serveur multi-threads. Bon, ça marche bien (à part le bug que je signale dans le post en question). Mais je me pose une question:

    Mes threads font appel à des fonctions diverses. Considérons par exemple la fonction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int SumInteger(int n)
      {
        int Sum=0;
    
        for (int i=1;i<n;i++)
          Sum+=i;
    
        return Sum;
      }
    Supposons qu'un thread fasse appel à cette fonction et commence à itérer la boucle FOR, et supposons qu'à ce moment un second thread fasse appel à cette fonction. Est-ce que la somme va être altérée, ou est-ce chaque thread va en fait utiliser sa propre copie de la fonction, et ne vont donc pas interférer?

    Merci de vos réponses.

  2. #2
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    Les variables locales à un bloc (ici le bloc est la fonction) sont instanciées à chaque entrée dans le bloc et détruites en sortie du bloc.

    Chaque appel de la fonction constituant une entrée dans le bloc, pas de soucis, puisqu'aucune des variables de la fonction n'est statique.
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  3. #3
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 126
    Points : 54
    Points
    54
    Par défaut
    Merci, ça répond entièrement à ma question.

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

Discussions similaires

  1. Plusieurs trigger pour une même fonction
    Par floriaan60 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 25/06/2010, 22h16
  2. Une même fonction pour plusieurs types de variables
    Par darkwall_37 dans le forum Débuter
    Réponses: 1
    Dernier message: 21/04/2010, 18h06
  3. Utiliser plusieurs fois une même fonction
    Par ledisciple dans le forum Langage
    Réponses: 20
    Dernier message: 13/02/2010, 12h47
  4. Réponses: 10
    Dernier message: 08/02/2007, 13h18
  5. TForm pour plusieurs fenêtre dans une même fonction ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 5
    Dernier message: 15/11/2005, 12h38

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