Buenos dias tenia una consulta conceptual sobre hacer un join aun thread, lo
que yo entendi segun todos los tutoriales y manuales y documentos que
explican threads es que cuando vos haces un join a un thread el hilo
principal de ejecucion que invoca al join del thread se queda en espera
hasta que el thread en cuestion termine su ejecuciòn, no es asi???
Entonces me surge la siguiente duda, supongamos que yo tengo X cantidad de
Threads Producers y 1 Thread Consumer y en mi main creo estos X+1 Threads y
los pongo a correr, inmediatamente luego, hago un join de todos los X
Threads Producers luego seteo una variable compartida que indica que todos
los Threads Producers terminaron y luego hago un join del Thread Consumer.
Esto funciona? Es decir cuando yo hago un join de los X Threads Producers el
hilo principal o el de la funcion main se queda esperando hasta que todos
los X Threads Producers terminen y luego se setearia la variable de
compartida que indica que la produccion termino? O puede suceder que la
variable compartida booleana esa se setee sin que los threads terminen?
El codigo seria algo asi
Thread** listaThreadProducer = new Thread*[5];
Thread* threadConsumer = new ThreadConsumer("Nombre del archivo);
for (counter = 0; counter < 5; counter++) {
listaThreadProducer[counter] = new ThreadProducer("nombre del archivo");
listaThreadProducer[counter]->start();
}
threadConsumer->start();
for (counter = 0; counter < 5; counter++) {
ListaThreadProducer[counter]->join();
}
SharedResource::getInstance().setProductionFinished(true);
threadConsumer->join();
// Aca irian todos los delete.
Esto puede funcionar? Es decir si yo en mi consumer thread hago referencia a
SharedResource::getInstance().getProductionFinished();
Saludos
Pablo
--
Si yo tengo una manzana y tú tienes una manzana, luego de intercambiarlas
ambos tenemos una manzana. Si yo tengo una idea y tú tienes una idea, luego
de intercambiarlas ambos tenemos dos ideas.
Apoyando a la comunidad Open Source.
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion