42Philosophers
This project is an introduction to the basics of process threading, and how work on the same memory space.
Install / Use
/learn @Jean-xavierr/42PhilosophersREADME
Philosophers - @42Born2code
Philosophers an individual project at 42 about introduction to the basics of process threading, and how work on the same memory space. And learn about mutexes, semaphores, and shared memory.
Introduction
In computer science, the dining philosophers problem is an example problem often used in concurrent algorithm design to illustrate synchronization issues and techniques for resolving them.
It was originally formulated in 1965 by Edsger Dijkstra as a student exam exercise, presented in terms of computers competing for access to tape drive peripherals. Soon after, Tony Hoare gave the problem its present formulation
Project duration : 1 week ⏳
Tips and good methodology to do the project at the bottom of the readme
Installation 🖥
To test the project, go to one of the folders philo_one, philo_two or philo_three and make a make. Then, you can test the project using an executable.
usage :
./philo_one number_philosopher time_to_die time_to_eat time_to_sleep [number_of_time_each_philosophers_must_eat]
arguments in square brackets are not required (number_of_time_each_philosophers_must_eat)
exemple :
./philo_one 4 500 200 200
I made a visual option, which makes it possible to have a prettier display, which reduces performance a little. To use it, add the option -v after the executable, this option is only available on philo_zero (philo zero is identical to philo one, but it can handle the [-v] option)
exemple :
./philo_zero -v 4 500 200 200

Tips project
⚠️ Warning: Don't copy/paste code you don't understand: it's bad for you, and for the school. I have put my login in a lot of files to encourage you doing your own version. Have fun !
Philo_one Thread and Mutex
(good resolution diagram)

In build
Project documentation 📚
Use pthread (pthread_create | pthread_join) EN video
Fork explain in FR or Fork Wiki EN
To do list
- [X] ReadMe
- [X] Philo_one
- [X] Philo_two
- [X] Philo_three
- [ ] Testing script
Contributing, Question or suggestions ?
42Slack : jereligi
42Intra : jereligi
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate.
Thanks for reading this read me, advice or corrections are welcome
Related Skills
node-connect
341.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
341.6kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.6kCommit, push, and open a PR

