#include #include #define RIT 10000000 // problema dei 5 filosofi void *filosofo(void* arg); void penso(int i); void mangio(int i); void prendo_forchette(int i); void test(int i); void rilascio_forchette(int i); pthread_t TID[5]; pthread_mutex_t mutex; // Semaforo per la variabile stato pthread_mutex_t s[5]; // Array di semafori, uno per forchetta char stato[5] = {'P','P','P','P','P'}; main(){ int i; printf("\n\tPROBLEMA DEI 5 FILOSOFI\n\n\n"); for(i=0;i<5;i++){ pthread_create(&TID[i], NULL, filosofo, (int *)i); } for(i=0;i<5;i++){ pthread_join(TID[i], NULL); } } void *filosofo(void* arg){ int i = (int)arg; while(1){ penso(i); prendo_forchette(i); //mangio(i); // Deve mangiare solo se test รจ OK rilascio_forchette(i); } } void penso(int i){ int k; printf(" Filosofo %d PENSA\n",i+1); for(k=0;k