java concurrency (les philosophes) · 2018. 1. 11. · java concurrency (les philosophes)...
TRANSCRIPT
![Page 1: JAVA Concurrency (Les philosophes) · 2018. 1. 11. · JAVA Concurrency (Les philosophes) Professeur Patrick BELLOT TELECOM ParisTech . Le problème des philosophes](https://reader035.vdocuments.net/reader035/viewer/2022081402/604d34f58b983640dd70d707/html5/thumbnails/1.jpg)
JAVA Concurrency (Les philosophes)
Professeur Patrick BELLOT
TELECOM ParisTech
![Page 2: JAVA Concurrency (Les philosophes) · 2018. 1. 11. · JAVA Concurrency (Les philosophes) Professeur Patrick BELLOT TELECOM ParisTech . Le problème des philosophes](https://reader035.vdocuments.net/reader035/viewer/2022081402/604d34f58b983640dd70d707/html5/thumbnails/2.jpg)
Le problème des philosophes
Le problème se décrit ainsi :
• Cinq philosophes sont attablés.
• Chacun a un plat de spaghetti.
• Chacun a une fourchette à sa gauche.
![Page 3: JAVA Concurrency (Les philosophes) · 2018. 1. 11. · JAVA Concurrency (Les philosophes) Professeur Patrick BELLOT TELECOM ParisTech . Le problème des philosophes](https://reader035.vdocuments.net/reader035/viewer/2022081402/604d34f58b983640dd70d707/html5/thumbnails/3.jpg)
Le problème des philosophes
Etats possibles des philosophes :
• Entrain de réfléchir.
• Affamé.
• Entrain de manger.
![Page 4: JAVA Concurrency (Les philosophes) · 2018. 1. 11. · JAVA Concurrency (Les philosophes) Professeur Patrick BELLOT TELECOM ParisTech . Le problème des philosophes](https://reader035.vdocuments.net/reader035/viewer/2022081402/604d34f58b983640dd70d707/html5/thumbnails/4.jpg)
Le problème des philosophes
Règles : • Pour manger, un philosophe a besoin de 2 fourchettes. • Chaque philosophe pense un certain temps (car il est
philosophe) puis devient affamé (car il est un humain). • Quand il est affamé, il faut qu’il mange un certain temps
comme tout le monde. • Pour manger, il prend la fourchette à sa gauche dès
qu’elle est libre, puis la fourchette à sa droite dès qu’elle est libre.
• Quand il a mangé, le philosophe repose les deux fourchettes et se remet à penser.
![Page 5: JAVA Concurrency (Les philosophes) · 2018. 1. 11. · JAVA Concurrency (Les philosophes) Professeur Patrick BELLOT TELECOM ParisTech . Le problème des philosophes](https://reader035.vdocuments.net/reader035/viewer/2022081402/604d34f58b983640dd70d707/html5/thumbnails/5.jpg)
Remarques (Wikipedia)
Les philosophes, s'ils agissent tous de façons naïves et identiques, risquent fort de se retrouver en situation d’interblocage. En effet, il suffit que chacun saisisse sa fourchette de gauche et, qu'ensuite, chacun attende que sa fourchette de droite se libère pour qu'aucun d'entre eux ne puisse manger, et ce, pour l'éternité.
Ce problème beaucoup plus complexe qu'il n'en a l'air est l'un des plus intéressants parmi les problèmes de systèmes distribués.
![Page 6: JAVA Concurrency (Les philosophes) · 2018. 1. 11. · JAVA Concurrency (Les philosophes) Professeur Patrick BELLOT TELECOM ParisTech . Le problème des philosophes](https://reader035.vdocuments.net/reader035/viewer/2022081402/604d34f58b983640dd70d707/html5/thumbnails/6.jpg)
A faire…
Modéliser en OO le problème et les objets du problème.
Programmer ce problème en supposant que les temps de réflexion et de manger sont aléatoires dans une gamme de valeurs possibles allant de 0 à 256 milliseconds.
Afficher une trace écrite sur l’écran de ce qui se passe.
![Page 7: JAVA Concurrency (Les philosophes) · 2018. 1. 11. · JAVA Concurrency (Les philosophes) Professeur Patrick BELLOT TELECOM ParisTech . Le problème des philosophes](https://reader035.vdocuments.net/reader035/viewer/2022081402/604d34f58b983640dd70d707/html5/thumbnails/7.jpg)
A vous de travailler…