Diner des philosophes

Le dîner des philosphes est un célèbre problème proposé par E. W. Dijkstra. Cinq philosophes se réunissent autour d'une table ronde pour penser et manger un bon plat de spaghetti. Entre chaque assiette est posée une seule fourchette et un philosophe a besoin de deux fourchettes (une dans chaque main) pour manger son plat. Chaque philosophe peut être alors, alternativement et pour un temps fini, dans l'une des trois situations suivantes :

Chaque philosophe est représenté par un thread. Les fourchettes sont des ressources partagées. Evidemment, aucun philosophe ne doit mourir de faim (pb de famine), et il ne doit pas y avoir d'inter-blocages entre les threads.