Il problema dei cinque filosofi è un esempio di sincronizzazione fra processi paralleli. Ci sono dunque cinque filosofi, cinque piatti e cinque forchette e ogni filosofo deve avere una forchetta a destra e una a sinistra. Ogni filosofo alterna periodi in cui mangia e periodi in cui pensa e per nutrirsi ha bisogno di due forchette, che vengono utilizzate una alla volta. Dopo essere riuscito a prendere due forchette il filosofo mangia per un po', poi lascia le forchette e ricomincia a pensare.
I problemi che possono verificarsi nella soluzione di questo algoritmo sono lo stallo e la starvation. Lo stallo o deadlock è la situazione in cui due o più processi si bloccano a vicenda, aspettando che uno esegua una certa azione che serve all'altro o viceversa. Nel nostro caso questo problema si verifica quando ciascuno dei filosofi prende una forchetta senza mai riuscire a prendere l'altra. La starvation si verifica quando un thread non ottiene le risorse hardware/software di cui necessita per essere eseguito. Questa situazione nel problema dei filosofi a cena si verifica quando uno dei filosofi non riesce mai a prendere entrambe le forchette.