Os planteo mi pregunta. Tengo un programa en el que se crean 5 hilos. Dichos hilos tienen que ejecutar una función, hello, varias veces, pero no pueden ejecutarla por segunda vez hasta que los 5 hilos la hayan ejecutado por primera vez.
Es decir, que si el primer hilo la ejecuta una vez, debe esperar a que terminen todos los demás para poder ejecutarla la segunda vez, y así sucesivamente, la tercera, la cuarta, etc...
En código, más o menos, resultaría así:
Código PHP:
int nVeces = 5;
for (i=0; i<n; i++){
pthread_create(&threads[i], NULL, hello, &args[i]);
}
void *hello(void *arg)
{
printf("Soy el hilo %d ejecutando la %d vez\n", p->id, i);
}
return (NULL);
}
Soy el hilo 0 ejecutando la 0 vez.
Soy el hilo 2 ejecutando la 0 vez
Soy el hilo 4 ejecutando la 0 vez
Soy el hilo 1 ejecutando la 0 vez
Soy el hilo 3 ejecutando la 0 vez
Soy el hilo 3 ejecutando la 1 vez.
Soy el hilo 1 ejecutando la 1 vez
Soy el hilo 2 ejecutando la 1 vez
Soy el hilo 0 ejecutando la 1 vez
Soy el hilo 4 ejecutando la 1 vez
Soy el hilo 4 ejecutando la 2 vez.
Soy el hilo 1 ejecutando la 2 vez
Soy el hilo 0 ejecutando la 2 vez
Soy el hilo 3 ejecutando la 2 vez
Soy el hilo 2 ejecutando la 2 vez
y así sucesivamente. Es un poquillo urgente, así que cualquier luz arrojada será bien recibida
Muchísimas gracias!!!!