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

Visual C++ Discussion :

notion de thread


Sujet :

Visual C++

  1. #1
    Membre du Club
    Homme Profil pro
    Electronicien
    Inscrit en
    Août 2008
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electronicien
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2008
    Messages : 360
    Points : 53
    Points
    53
    Par défaut notion de thread
    Bonjours,

    ce que j'ai compris est que cette notion permet de faire travailler plusieurs tâches en parallèle.

    Donc comme il m'a été décrit, deux fonctions dans deux thread différent fonctionne indifféremment en parallèle, on peu faire appel a une fonction dans un thread différent ou réciproquement si je me trompe pas, l'évocation de invoke().

    Afin de comprendre au mieux cette notion de thread pour mieux intervenir dessus:

    combien de thread peut-on avoir dans un programme, comment les identifiés et comment fait-on référence à un thread particulié en faisant un invoke().

    Auriez vous des liens ou reférence à me conseillé pour mieux comprendre cette notion.

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Invoke() ne marche que pour Windows Forms (Framework .Net), et plus précisément pour les threads qui affichent des Windows Forms.

    La classe System::Windows::Forms::Control, la classe mère de tout ce qui est affichable en Windows Forms, possède cette méthode Invoke() qui appelle la fonction reçue en paramètre sur le thread propriétaire du contrôle (c'est-à-dire, le thread qui l'a créé).

    Pour reproduire ce genre de comportement ailleurs, il faut utiliser des objets de synchronisation, comme (à partir du Framework 4.0) BlockingCollection dans le sens des appels et des événements dans le sens des retours.
    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 du Club
    Homme Profil pro
    Electronicien
    Inscrit en
    Août 2008
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electronicien
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2008
    Messages : 360
    Points : 53
    Points
    53
    Par défaut
    Merci pour tes explications Médinoc, faut que je continu à me pencher sur cette environnement pour en saisir la subtilité.

    Aurais-tu des références à me conseiller pour quelqu'un comme moi qui possède que des notions de C microproce et pascal(delphi) en tant qu'électronicien.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Google est l'ami de l'humanité.

    http://fr.wikipedia.org/wiki/Thread_(informatique)

  5. #5
    Membre du Club
    Homme Profil pro
    Electronicien
    Inscrit en
    Août 2008
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electronicien
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2008
    Messages : 360
    Points : 53
    Points
    53
    Par défaut
    Ca je me doute bien que google à toutes les réponses que ce pose l'humanité, seulement y a tous et n'importe quoi et ma question était orienté par rapport à une expérience personnel de quelqu'un d'expérimenté.

    J'ai évidemment fais mes recherches sur le net.

    Merci pour le lien

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    expérience personnel de quelqu'un d'expérimenté
    Me voila habillé pour l'hiver.

    J'ai donné une référence généraliste car il faut commencer par cela.

    Vous ne comprendrez le cloisonnement des appels liés au "thread appartements" et à l'affinité de thread des contrôles Windows que si vous avez une idée claire de ce qu'est un thread en général.

    Pour faire concis, un processus n'est qu'un espace virtuel d'adressage.
    Quand vous lancer un programme vous créez ce bac à sable qu'est un processus (avec le code machine du fichier programme dans un coin de l'espace d'adressage) et un thread, qui l'utilise, avec un IP (Instruction pointer), stack pointeur, .... (tout ce qui est spécifique à un thread, donc pas l'espace d'adressage ou des handler de fichier qui font partie du bac à sable eux).

    Le thread est "ce qui tourne", mais rien ne vous empêche de créer un autre dans le même espace d'adressage (même processus), mais avec un autre IP.
    C'est là que des mécanismes sont utilisés pour empêcher que chaque thread ne foute le Bronx dans les données utilisées par un de ces congénères.

    Pour éviter toute embrouille, les contrôles Windows n'acceptent, en générale, les appels de fonction que le thread l'ayant créé (le controle).

  7. #7
    Membre du Club
    Homme Profil pro
    Electronicien
    Inscrit en
    Août 2008
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electronicien
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2008
    Messages : 360
    Points : 53
    Points
    53
    Par défaut
    Merci pour tes explication bacelar, je croix devoir regarder ça dans les bouquins que je vais aller me procurer très vite.

Discussions similaires

  1. Notion de thread dans SqlServer existe ?
    Par berceker united dans le forum Développement
    Réponses: 11
    Dernier message: 07/11/2010, 21h33
  2. [Généralités] Notions de base : les threads
    Par Raptor92 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/07/2009, 15h24
  3. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  4. Réponses: 5
    Dernier message: 12/06/2002, 15h12
  5. [Kylix] Pb de Thread !!
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 25/04/2002, 13h53

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