[{"@context":"http:\/\/schema.org\/","@type":"BlogPosting","@id":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/philosophenproblem-wikipedia\/#BlogPosting","mainEntityOfPage":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/philosophenproblem-wikipedia\/","headline":"PhilosophenProblem – Wikipedia","name":"PhilosophenProblem – Wikipedia","description":"before-content-x4 Construire le probl\u00e8me philosophe Au Probl\u00e8me de philosophe ( Anglais Probl\u00e8me de philosophes de restauration ) est une \u00e9tude","datePublished":"2023-11-17","dateModified":"2023-11-17","author":{"@type":"Person","@id":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/author\/lordneo\/#Person","name":"lordneo","url":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/author\/lordneo\/","image":{"@type":"ImageObject","@id":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","height":96,"width":96}},"publisher":{"@type":"Organization","name":"Enzyklop\u00e4die","logo":{"@type":"ImageObject","@id":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","url":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","width":600,"height":60}},"image":{"@type":"ImageObject","@id":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/7\/7b\/An_illustration_of_the_dining_philosophers_problem.png\/220px-An_illustration_of_the_dining_philosophers_problem.png","url":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/7\/7b\/An_illustration_of_the_dining_philosophers_problem.png\/220px-An_illustration_of_the_dining_philosophers_problem.png","height":"228","width":"220"},"url":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/philosophenproblem-wikipedia\/","wordCount":2985,"articleBody":" (adsbygoogle = window.adsbygoogle || []).push({});before-content-x4 Construire le probl\u00e8me philosophe Au Probl\u00e8me de philosophe ( Anglais Probl\u00e8me de philosophes de restauration ) est une \u00e9tude de cas du domaine de l’informatique th\u00e9orique. Ceci est destin\u00e9 \u00e0 illustrer le probl\u00e8me de la libert\u00e9 auxiliaire et le risque du criminel des processus. Le probl\u00e8me a \u00e9t\u00e9 formul\u00e9 par Edsger W. Dijkstra. (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4Cinq philosophes, num\u00e9rot\u00e9s de 0 \u00e0 4, vivent dans une maison o\u00f9 la table est couverte pour eux, chaque philosophe ayant sa propre place \u00e0 la table. Son seul probl\u00e8me – en plus de celui de la philosophie – est que le plat servi est une vari\u00e9t\u00e9 tr\u00e8s difficile de spaghettis qui doit \u00eatre mang\u00e9e avec deux fourchettes. Il y a une fourche entre les plaques, de sorte que ce n’est pas un probl\u00e8me pour un seul philosophe. Cependant, deux voisins ne peuvent pas manger en m\u00eame temps. [d’abord] Les philosophes sont assis \u00e0 la table et r\u00e9fl\u00e9chissent \u00e0 des probl\u00e8mes philosophiques. Quand quelqu’un a faim, il attrape d’abord la fourche \u00e0 gauche de son assiette, puis \u00e0 droite et commence \u00e0 manger. Quand il est plein, il remet les fourches et recommence \u00e0 r\u00e9fl\u00e9chir. Si une fourche n’est pas \u00e0 sa place si le philosophe veut l’enregistrer, il attend que la fourche soit \u00e0 nouveau disponible. (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4Tant que seuls les philosophes individuels ont faim, ce processus fonctionne. Cependant, il peut arriver que les cinq philosophes d\u00e9cident de manger en m\u00eame temps. Ils prennent donc tous leur fourche gauche en m\u00eame temps et enl\u00e8vent ainsi la fourche droite du coll\u00e8gue assis \u00e0 gauche. Maintenant, les cinq attendent que la bonne fourche r\u00e9appara\u00eet. Mais cela ne se produit pas parce qu’aucun des cinq couvrait sa fourche gauche. Les philosophes sont affam\u00e9s. Dans la solution de hi\u00e9rarchie des ressources, la fourche avec le nombre inf\u00e9rieur, puis la fourche avec le nombre plus \u00e9lev\u00e9 des deux fourches est toujours s\u00e9lectionn\u00e9e en premier. Variante: Chaque philosophe affam\u00e9 prend les deux fourches disponibles suivantes, qu’elles aient \u00e9t\u00e9 r\u00e9cemment utilis\u00e9es par un voisin. Donc z. Par exemple, l’affaire est possible que deux philosophes remettent toujours leurs fourches aux m\u00eames deux autres philosophes et le cinqui\u00e8me philosophe devrait mourir de faim. Le code source suivant est une impl\u00e9mentation C ++ 11 de la solution de hi\u00e9rarchie des ressources pour trois philosophes. La fonction sleep_for () simule le temps qui est g\u00e9n\u00e9ralement pass\u00e9 avec la logique m\u00e9tier. #inclure #inclure #inclure #inclure #inclure #inclure using namespace std;int myrand(int min, int max) { static mt19937 rnd(time(nullptr)); return uniform_int_distribution(min,max)(rnd);}void phil(int ph, mutex& ml, mutex& mh, mutex& mo) { for (;;) { \/\/ verhindert, dass Thread beendet wird int duration = myrand(200, 800); { \/\/ Block { } begrenzt Gueltigkeit von lock lock_guard moGuard(mo); cout (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4"},{"@context":"http:\/\/schema.org\/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/#breadcrumbitem","name":"Enzyklop\u00e4die"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/philosophenproblem-wikipedia\/#breadcrumbitem","name":"PhilosophenProblem – Wikipedia"}}]}]