/Philosopher

Basics of threading a process. How to create threads and use mutexes.

Primary LanguageC

Philosopher🍝

I designed a program in C to simulate the Dining Philosopher problem, which allowed me to gain a deeper understanding of multi-threading and mutexes. This project improved my debugging skills and provided experience in improving the algorithm of a multi-threaded program. I was also introduced to data races and gained experience in detecting and diagnosing them using the Valgrind tool (specifically, Helgrind) and fixing them. This project also provided an opportunity to enhance my skills in C programming, algorithm design, and software testing.