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 - section critique


Sujet :

Windows

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 26
    Points : 26
    Points
    26
    Par défaut Multithreading - section critique
    Bonjour à tous,
    J'ai un petit problème. Je pense qu'il est lié à ma manière de gérer des threads dans mon programme.
    En fait, j'ai un thread qui exécute plusieurs (une centaine) threads accédant à une section critique (lecture sur un port com).
    Le truc est qu'au départ, je ne gérais qu'une cinquantaine de threads et tout allait bien. Maintenant avec mes 100 threads, il arrive qu'ils n'accèdent pas effectivement au port. Du coup, je me demande s'il y a des soucis avec un grand nombre de thread en C#.Si quelqu'un a déjà rencontré ce problème...

    Merci d'avance.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 33
    Points : 26
    Points
    26
    Par défaut Multithreading - section critique
    Salut,

    Premièrement , comment les thread sont créé? pool, ou manuellement.
    Deuxièment, comment fais tu ta synchronisation de ta section critique, sémaphore, mutex , lock....?

    et peu-être un peu de code source serait bien. De plus as tu validé que tes thread sorte bel et bien de ta section critique et finisse toujours par libérer ta section.

  3. #3
    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
    Tu as combien de sections critiques dans ton code. Tu n'aurais pas un problème de dead lock par hasard ?

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Autre point : je vois vraiment mal comment on peut avoir jusqu'à 100 threads tapant dans le même port COM... A moins d'une crise de masochisme primaire, bien sûr.

    Il est en général préférable d'avoir un seul thread sur le port COM, et d'utiliser ensuite une ou plusieurs FIFO pour l'alimenter : ainsi, chaque objet de synchronisation n'est géré que par deux threads, et non pas une centaine qui tentent de taper un peu n'importe comment dans une ressource critique...

Discussions similaires

  1. Multithreading avec section critique ?
    Par Cokate dans le forum C#
    Réponses: 8
    Dernier message: 25/08/2008, 16h05
  2. [VB.NET] Remplacement de fichier, section critique
    Par leSeb dans le forum Windows Forms
    Réponses: 7
    Dernier message: 10/03/2006, 14h34
  3. section critique "static" ou pas?
    Par giova_fr dans le forum Windows
    Réponses: 2
    Dernier message: 01/01/2006, 13h15
  4. [Delphi 6] Problème de section critique
    Par Desraux dans le forum Langage
    Réponses: 8
    Dernier message: 08/12/2005, 14h13
  5. [Kylix] Section critique
    Par rahimk dans le forum EDI
    Réponses: 5
    Dernier message: 23/11/2005, 12h18

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