Page 1 sur 1

Deux questions concernant les threads

Publié : dim. 24/avr./2011 11:59
par stombretrooper
J'ai deux questions qui me sont venus en développant un système serveur-client, utilisant les thread :
1) Si deux thread en même temps, travaillent sur le même espace mémoire, il y a t'il un risque de plantage ? Est ce impossible,...
2) Si deux thread en même temps, font une requête sur la même base de donnée, pareille, Est ce possible ? Il y a t'il risque de plantage ?
J'ai un ou plusieurs invalid memory access qui se baladent, et je dois avouer que je n'ai pas encore trouvé la source de l'erreur (ou des erreurs), et je me demandais si c'était pas tout simplement le fait que les deux thread bossent en même temps sur la même chose.


edit : une autre question, que je n'ai pas posé pensant avoir trouvé le problème, quand j'envoie plusieurs messages en même temps via une connections TCP, certains messages ne sont pas reçu côté serveur ? Je me demandais d'où cela pouvait venir, j'ai vue, que plusieurs messages reçu à un très court intervalle pouvait être considéré comme un unique message côté serveur, mais même en prenant en considération cette 'variable', sur 5 messages envoyé en même temps (un simple delay(10) entre chaque message supprime ce problème), le serveur en récupère 2. C'est un problème de taille de mémoire tampon ? Une erreur de codage ? Quelqu'un à une idée ?

Re: Deux questions concernant les threads

Publié : dim. 24/avr./2011 12:38
par djes
Bien sûr que c'est possible. C'est pour cela que tu as des mutex et des semaphores pour éviter les conflits.

Re: Deux questions concernant les threads

Publié : dim. 24/avr./2011 13:22
par stombretrooper
Ma question est justement là, dans ces deux cas là, l'utilisation des mutex/semaphore est obligatoire ou je peux continuer comme si sa ne posais pas de soucis ?

Re: Deux questions concernant les threads

Publié : dim. 24/avr./2011 13:54
par djes
Tous les cas sont différents, mais en général, si tu accèdes au même espace mémoire, ça me semble obligatoire! Pour ce qui est de la base de données, elle a normalement des mécanismes de verrouillage qui évitent d'accéder au même enregistrement ; il faut juste mettre en place des systèmes d'attente ou de vérification.

Re: Deux questions concernant les threads

Publié : mar. 26/avr./2011 14:26
par dayvid
Moi je te conseil d'utiliser ce qu'on viens de te dire
d'ailleurs j'aimerais bien t'aider mais moi même j'aimerais bien savoir comment faire :lol:

Re: Deux questions concernant les threads

Publié : mer. 27/avr./2011 0:13
par stombretrooper
Merci pour les réponses, j'ai commencé à mettre des mutex un peu partout ! Et sa marche mieux qu'avant moins de bugs qui sortaient de nul part !