cs_Gerard
Messages postés121Date d'inscriptionjeudi 10 janvier 2002StatutMembreDernière intervention 7 août 2018
-
18 oct. 2014 à 08:05
KX
Messages postés16734Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention24 avril 2024
-
18 oct. 2014 à 13:56
Bonjour,
--J'ai des erreurs qui apparaissent parfois sans que j'arrive à en trouver l'origine.
J'ai un serveur avec de nombreux threads (un par client et ils sont plusieurs dizaines) et j'en suis arrivé à me poser la question de savoir si les fonctions de Delphi telles que IntToStr ou Blokwrite subiraient des collisions lorsqu'elles sont appelées simultanément par plusieurs clients?
Faut-il les protéger par des sections critiques ou des mutex?
KX
Messages postés16734Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention24 avril 2024127 18 oct. 2014 à 13:56
Bonjour,
Je ne connais pas bien Delphi, mais les problèmes avec des threads interviennent lorsqu'il y a une ressource partagée.
Dans le cas de IntToStr le résultat ne dépend apriori d'aucune ressource, il ne devrait donc pas y avoir de problème.
Par contre pour le BlockWrite si les threads partagent le même fichier d'écriture là il peut y avoir de gros problèmes. Mais si chaque thread a son propre fichier il n'y a pas de raison.
Donc effectivement la solution consiste à protéger une ressource partagée en la manipulant dans une section critique.