/* Programma di esempio di due thread .... * Ora aggiungiamo un semaforo di mutua esclusione!!!! */ #include #include #include #include #include #include "myutils.h" /* Numero di cicli di scrittura/lettura nel buffer */ #define CICLI 10 /* Lunghezza del buffer */ #define LUN 50 /* Numero di cicli a vuoto di attesa */ #define DELAY 10000000 /* Memoria Condivisa fra i threads ... */ struct { pthread_mutex_t mutex; /* Stringa stampata a video */ char scritta[LUN+1]; /* Numero dei caratteri inseriti */ int numLetture; int numScritture; } shared = {PTHREAD_MUTEX_INITIALIZER}; /* Forward declaration */ void *scrittore1(void *); void *scrittore2(void *); void *lettore(void *); int main(void) { pthread_t scrit1, scrit2, let; int res, i; /* Inizializzo la stringa scritta */ for(i=0; i