Problema filosofilor dining este un experiment de gândire sau un exemplu folosit în domeniul informaticii. Problema folosește o analogie pentru a ilustra problemele de sincronizare care pot apărea atunci când computerele partajează resurse. Oamenii de știință în informatică folosesc problemele filozofilor de mese pentru a-i învăța pe elevi despre algoritmii folosiți pentru a rezolva aceste probleme.
Scenariul problemei filozofilor de mese este o masă circulară la care sunt așezați cinci filozofi. În centrul mesei se află un castron cu tăiței sau alte alimente. Fiecare filozof are câte o furculiță sau bețișoare de fiecare parte, ceea ce înseamnă că sunt cinci furculițe sau betisoare în total. Pentru a mânca, un filosof are nevoie de două ustensile. Fiecare filosof trebuie, de asemenea, să petreacă ceva timp gândind și nu poate gândi și mânca în același timp. Inima problemei filozofilor de mese este dificultatea de a preveni impasul.
Blocajul în această problemă apare atunci când filozofii se pun într-o poziție în care nu pot nici să gândească, nici să mănânce. De exemplu, dacă fiecare filosof ar ridica ustensilele din stânga lui, nimeni nu ar putea mânca, pentru că toate ustensilele ar fi folosite, dar niciun filosof nu ar avea două. Pentru a permite tuturor filozofilor să mănânce, elevul trebuie să creeze un algoritm care să asigure că unii filozofi mănâncă în timp ce alții gândesc. Acest lucru permite atât mâncatul, cât și gândirea să continue fără a se bloca.
Există o serie de soluții posibile la problema filozofilor de mese. O soluție presupune crearea unui al șaselea personaj, chelnerul, care dă sau refuză permisiunea filosofilor să-și ridice furculițele. Altele implică reglementarea ordinii în care filozofii își ridică și pun furculițele pentru a maximiza disponibilitatea. Altele implică să le spună filozofilor să verifice dacă vecinii lor mănâncă înainte de a încerca să mănânce. În esență, fiecare soluție implică dezvoltarea unui set de reguli, numit algoritm, care guvernează când filozofii gândesc, mănâncă sau ridică și pun jos ustensilele.
Problema filozofilor de mese a fost exprimată pentru prima dată de informaticianul olandez Edsger Dijkstra în 1965 ca o întrebare de examen pentru studenți. De atunci, problema a suferit o serie de modificări. Apare într-un număr de formate ușor diferite, dintre care unele schimbă doar detaliile poveștii, dar altele propun limitări suplimentare ale problemei pentru a demonstra concepte dificile. Cea mai comună versiune modernă a fost creată de Tony Hoare.