Semaphore stick1 = 1; Semaphore stick2 = 1; Semaphore stick3 = 1; Semaphore stick4 = 1; Semaphore stick5 = 1; phil(stickl, stickr) { while (true) { ... think(); ... P(stickl); P(stickr); eat(); V(stickl); V(stickr); } } par { phil(stick1,stick2); } { phil(stick2,stick3); } { phil(stick3,stick4); } { phil(stick4,stick5); } { phil(stick5,stick1); } --> Deadlock // Improvement: phil(stickl, stickr) { while (true) { ... think(); ... P(stickl); if (lookup(stickr) == 0) { V(stickl); } else { P(stickr); eat(); V(stickl); V(stickr); } } } --> Livelock