Das Philosophenproblem (Dijkstra, 1968) ist ein klassisches Gedankenexperiment zur Nebenläufigkeit

Das Problem

  • 5 Philosophen speisen mit 5 Gabeln Spaghetti, wobei jeder zum Essen 2 Gabeln braucht.
  • Jeder Philosoph kommt zu einem zufälligen Zeitpunkt an seinen Platz, nimmt zwei Gabeln und isst eine zufällig lange Zeit.

Philosophenproblem|300

Das Szenario veranschaulicht die Phänomene:

  1. Deadlock - z.B. wenn alle hintereinander die rechte Gabel nehmen
  2. Starvation - z.B. wenn einer (oder mehr) nie Zugriff bekommen weil andere immer wieder eine Ressource erlangen
  3. Busy Waiting - z.B. wenn einer (oder mehr) unaufhörlich um Besteck bitten