#include #include #include #include #include // prototipo de funciones void f_hilo1(void) ; void f_hilo2(void) ; char letra = 'a' ; pthread_mutex_t m1 = PTHREAD_MUTEX_INITIALIZER ; pthread_mutex_t m2 = PTHREAD_MUTEX_INITIALIZER ; int main(int argc, char **argv) { pthread_mutex_lock(&m2); pthread_t hilo1; pthread_t hilo2; pthread_create(&hilo1,NULL,(void *)f_hilo1,NULL); pthread_create(&hilo2,NULL,(void *)f_hilo2,NULL); pthread_join(hilo1,NULL); pthread_join(hilo2,NULL); printf("\n"); exit(0); } void f_hilo1(void) { do { pthread_mutex_lock(&m1); // printf("%d\n",letra); printf("%c\n",letra); // sleep(1) ; letra = letra - 31 ; pthread_mutex_unlock(&m2); }while(letra < 'Z'); } void f_hilo2(void) { do { pthread_mutex_lock(&m2); // printf("%d\n",letra); printf("%c\n",letra); letra = letra + 33 ; pthread_mutex_unlock(&m1); }while(letra < 'z'); }