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

API, COM et SDKs Delphi Discussion :

Multithreading à la Delphi


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    bruce-willis
    Invité(e)
    Par défaut Multithreading à la Delphi
    Bonjour,

    Je commence à apprendre les méthodes de synchronisation en programmation concurrente (multitâche). Je me demande alors comment pourrais-je tester ces techniques comme Mutex, Sémaphore, Critical Section sous Delphi, est-ce que ça existe sous Delphi ? Ma capacité en multitâche est maintenant de créer un TThread et mettre quelques choses en boucle dans Execute()

    Merci d'avance

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Billets dans le blog
    1
    Par défaut
    Pour les Critical Section il y a la classe TCriticalSection pour ça, pour les Mutex tu peux t'inspirer de cet exemple de la FAQ pour savoir si une instance d'un programme est déjà créée ou non, pour les sémaphores je connais moins mais ça doit être du même acabit (au pire tu appelleras directement les API).

    N'hésites pas à consulter également cette FAQ sur les Threads.

  3. #3
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par bruce-willis Voir le message
    Bonjour,

    Je commence à apprendre les méthodes de synchronisation en programmation concurrente (multitâche). Je me demande alors comment pourrais-je tester ces techniques comme Mutex, Sémaphore, Critical Section sous Delphi, est-ce que ça existe sous Delphi ? Ma capacité en multitâche est maintenant de créer un TThread et mettre quelques choses en boucle dans Execute()

    Merci d'avance
    ça existe avant tout sous Windows

    il existe des classes Delphi (TThread, TCriticalSection...) mais de rien ne t'empêche d'utiliser directement l'API Windows.

    Attention cependant à la variable globale IsMultiThread qui doit être basculée à TRUE si tu fais du multithread (tu dois le faire toi même si tu utilises directement l'API Windows, alors que les classes Delphi se chargent de le faire).

    Il y a un chapitre consacré à cela dans "Delphi 7 Studio" aux éditions Eyrolles
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    bruce-willis
    Invité(e)
    Par défaut
    Contrairement à ce qu'on avait appris en théorie des systèmes multitâches, on n'a plus à s'inquiéter de l'ordonnancement des threads ? seulement de l'accès à une ressource commune pour éviter l'interblocage ??
    Ces trucs: mutex, sémaphores ne sont-ils qu'à utiliser entre threads d'un processus mais pour "entre processus", c'est le système d'exploitation qui gère non ??

    En fait, Windows utilise quel système d'ordonnancement des processus (round robin ou ...) ? De même Linux ?

  5. #5
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par bruce-willis Voir le message
    Contrairement à ce qu'on avait appris en théorie des systèmes multitâches, on n'a plus à s'inquiéter de l'ordonnancement des threads ? seulement de l'accès à une ressource commune pour éviter l'interblocage ??
    Ces trucs: mutex, sémaphores ne sont-ils qu'à utiliser entre threads d'un processus mais pour "entre processus", c'est le système d'exploitation qui gère non ??

    En fait, Windows utilise quel système d'ordonnancement des processus (round robin ou ...) ? De même Linux ?
    je ne sais pas comment Windows gère cela, mais je sais que seules les sections critiques sont propres à un process, le reste est global au système.

    D'autre part, l'ensemble est géré par l'OS, si tu regardes les sources de TThread ou TCriticialSection, ils s'appuient sur l'API Windows

    de même que sous Linux, ce soit être la libc qui gère cela j'imagine.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    bruce-willis
    Invité(e)
    Par défaut

    Merci !!

Discussions similaires

  1. delphi XE avec Firebird 2.5 et multithread
    Par dietrying dans le forum Bases de données
    Réponses: 6
    Dernier message: 11/03/2012, 21h01
  2. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 20h09
  3. Blocage Interbase Delphi MultiThreads
    Par thedev7 dans le forum InterBase
    Réponses: 5
    Dernier message: 14/12/2006, 08h59
  4. Réponses: 4
    Dernier message: 27/03/2002, 11h03
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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