/* * Problema do barbeiro dorminhoco com vários barbeiros. */ #include #include #include #include #include "myfutex.h" #include #define N_CLIENTES 10 #define N_BARBEIROS 2 #define N_CADEIRAS 5 int visor; void* f_barbeiro(void *v) { int id = *(int*)v; return NULL; } void* f_cliente(void* v) { int id = *(int*) v; return NULL; } int main() { pthread_t thr_clientes[N_CLIENTES], thr_barbeiros[N_BARBEIROS]; int i, id_cl[N_CLIENTES], id_bar[N_BARBEIROS]; for (i = 0; i < N_CLIENTES; i++) { id_cl[i] = i; pthread_create(&thr_clientes[i], NULL, f_cliente, (void*) &id_cl[i]); } for (i = 0; i < N_BARBEIROS; i++) { id_bar[i] = i; pthread_create(&thr_barbeiros[i], NULL, f_barbeiro, (void*) &id_bar[i]); } for (i = 0; i < N_CLIENTES; i++) pthread_join(thr_clientes[i], NULL); /* Barbeiros são assassinados */ return 0; }