Programmation Concurrente (2016)

Moniteur et thread actif

Voir le sujet précédent Voir le sujet suivant Aller en bas

Moniteur et thread actif

Message par user07 le Mar Oct 10, 2017 11:47 am

Bonjour ,
par un seul moniteur actif à la fois dans un moniteur vous voulez dire un seul actif sur une file d'attente define par une condition donée ou pour tout les conditions on aura un seul actif à la fois?
si je ne me trompe pas j'ai compris qu'un moniteur peut avoir plusieurs conditions et chaque condition presente un file d'attente dont on peut avoir un thread actif non?

user07

Posts : 10
Join date : 27/09/2017

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Moniteur et thread actif

Message par Admin le Mar Oct 10, 2017 7:35 pm

Par "un seul actif à la fois", je veux dire que vous pouvez avoir plusieurs threads qui sont "dans" le code du moniteur mais que pour N threads "dans le code" seule une seule peut être active, les autres étant toutes suspendues sur une condition par exemple.

Est-ce plus clair?

Admin
Admin

Posts : 31
Join date : 24/08/2016

Voir le profil de l'utilisateur http://3i001-2016.forumactif.org

Revenir en haut Aller en bas

Re: Moniteur et thread actif

Message par user07 le Mer Oct 11, 2017 3:19 pm

oui donc si on deux conditions on peut avoir deux threads actifs à la fois?

user07

Posts : 10
Join date : 27/09/2017

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Moniteur et thread actif

Message par Admin le Mer Oct 11, 2017 7:23 pm

Absolument pas. C'est une thread active par moniteur... donc toujours une et une seule quelque soit le nombre de conditions. Si on a plusieurs conditions, c'est que l'on a plusieurs raisons de se bloquer.

Admin
Admin

Posts : 31
Join date : 24/08/2016

Voir le profil de l'utilisateur http://3i001-2016.forumactif.org

Revenir en haut Aller en bas

Re: Moniteur et thread actif

Message par user07 le Mer Oct 11, 2017 10:44 pm

mais ce que j'ai compris que c'est deux threads n'ont pas la meme condition (pas la meme raison de blocage) ils peuvent s'excuter les deux a la fois non?

user07

Posts : 10
Join date : 27/09/2017

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Moniteur et thread actif

Message par Admin le Jeu Oct 12, 2017 8:09 am

Si cela arrive, les variables protégées par le moniteur ne sont plus protégées car rien n'empêche l'une des threads de modifier une variable dans le dos de l'autre. Donc c'est absolument à éviter.

La condition, c'est la raison du blocage, cela permet de ne pas mettre toutes les threads bloquées dans la même file et de les reprendre à mauvais escient. Regardez l'exemple. Regardez bien l'exemple du sas où chaque condition correspond à une porte. Il ne faut réveiller les threads de l'entrée que lorsque celles qui étaient bloquées en sortie seront toutes réveillées. Et si on a deux threads actives au même moment, on a des risques sur les compteurs partagés.

Admin
Admin

Posts : 31
Join date : 24/08/2016

Voir le profil de l'utilisateur http://3i001-2016.forumactif.org

Revenir en haut Aller en bas

Re: Moniteur et thread actif

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum