Back
Portfolio

Philosophers

Threading e Mutex

Threading & Mutexes

Informazioni sul Progetto

Philosophers è un classico problema di informatica che insegna concetti di programmazione concorrente. Il progetto simula il problema dei filosofi a cena dove più filosofi siedono a un tavolo rotondo e devono condividere le forchette per mangiare, introducendo sfide di condivisione delle risorse e prevenzione del deadlock.

L'implementazione richiede l'uso di thread e mutex per gestire le risorse condivise in modo sicuro, evitando race condition e deadlock. È un progetto essenziale per comprendere il multithreading, le primitive di sincronizzazione e i pattern di programmazione concorrente.

About This Project

Philosophers is a classic computer science problem that teaches concurrent programming concepts. The project simulates the dining philosophers problem where multiple philosophers sit at a round table and must share forks to eat, introducing challenges of resource sharing and deadlock prevention.

The implementation requires using threads and mutexes to manage shared resources safely, avoiding data races and deadlocks. It's an essential project for understanding multithreading, synchronization primitives, and concurrent programming patterns.

Competenze Acquisite

  • Multithreading con pthreads
  • Sincronizzazione con mutex e thread safety
  • Strategie di prevenzione del deadlock
  • Gestione delle race condition
  • Pattern di programmazione concorrente
  • Condivisione delle risorse e meccanismi di locking
  • Simulazione basata sul tempo e timing
  • Gestione delle sezioni critiche

Skills Acquired

  • Multithreading with pthreads
  • Mutex synchronization and thread safety
  • Deadlock prevention strategies
  • Race condition handling
  • Concurrent programming patterns
  • Resource sharing and locking mechanisms
  • Time-based simulation and timing
  • Critical section management

Visualizza il PDF del progetto

View project subject PDF

Apri PDF Open PDF Vedi su GitHub View on GitHub