This project is a simulation of the classic Dining Philosophers problem, a concurrency challenge. Each philosopher is a thread and must follow rules around eating, thinking, sleeping, and not dying.
- Each philosopher alternates between eating, sleeping, and thinking.
- They need two forks (mutexes) to eat.
- If a philosopher doesn't eat within a time threshold, they die.
- There must be no data races
- There has to be no unlocks of already unlocked mutexes
- Number of philosophers = number of forks
- Philosophers cannot share information with each other