Hola gente del froo tengo una dudo con hilos, verán tengo un arreglo de char que tiene dos letras, lo que quiero es crear dos hilos y que cada uno de esos hilos cambien una de esas letras y mostrar luego de esto el arreglo de char modificado; tengo esto
Código C:
Ver original#include <pthread.h> // libria para hilos
#include <stdlib.h>
#include <unistd.h> // acceso a la API POSIX del SO
#include <stdio.h>
char ids[3] = "XY"; // arreglo
int idHilos; // identificadores de hilos
pthread_mutex_t semaforo; // Global para que todos accedan al mutex
void *imprime(void *var){ // funcion que ejecutaran los hilos
pthread_mutex_lock(&semaforo); // Bloqueamos el acceso
int mi_id = *((int*)var); // numero del hilo
if(mi_id == 0) // 1er hilo
ids[0] = 'D';
if(mi_id == 1) // 2do hilo
ids[1] = 'M';
pthread_mutex_unlock(&semaforo);
return NULL;
}
int main(){
pthread_t h, p;
idHilos = 0;
pthread_create(&h, NULL, imprime, &(idHilos));
idHilos = 1;
pthread_create(&p, NULL, imprime, &(idHilos));
pthread_join(h, NULL);
pthread_join(p, NULL);
// imprimo el arreglo
for(int i = 0; i < 11; i++){
}
return 0;
}
Pero de "XY" pasa a "XM" o sea la X no me la cambia por la D el primer hilo como que no está haciendo nada....
Ayuda! ... alguna sugerencia .. gracias por el tiempo eso si