C/Visual C - ¿Cómo ejecutar sentencias concurrentes en C++?

   
Vista:

¿Cómo ejecutar sentencias concurrentes en C++?

Publicado por Laura (6 intervenciones) el 12/11/2009 16:02:26
¡Hola! Necesito un poco de ayuda porque estoy un poco perdida con un tema. En mi programa llego a un punto en el que tengo que ejecutar dos sentencias, pero cada una tarda un poco y deberían ejecutarse más o menos a la vez. ¿¿Hay alguna manera de ejecutarlas de forma concurrente o paralela??
¡¡Gracias!!
Laura
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¿Cómo ejecutar sentencias concurrentes en C++?

Publicado por victor (7 intervenciones) el 18/11/2009 11:38:24
Hola Laura,

La concurrencia se utilizá para que 2 hilos o procesos no accedan a la vez a una misma variable global o a un mismo recurso, si en tus 2 sentencias hay dependencias de datos, es decir acceden a una misma variable o recurso al mismo tiempo y alguna de ellas modifica su valor deberías utilizar alguna estructura como un pipe, semaforo ,etc. Por ejemplo un semaforo binario(una variable que vale 0 o 1) ,puedes hacer que cuando valga 0 se ejecute la primera sentencia y cuando valga 1 se ejecute la segunda, teniendo en cuanta que cuando termine de ejecutarse la primera sentencia el valor del semaforo pasara a 1 y cuando termine la segunda sentencia el valor del semaforo valga 0, de este modo no habra inanición y las 2 sentencias se ejecutaran en cada iteración y no accederan a la vez al mismo recurso.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Cómo ejecutar sentencias concurrentes en C++?

Publicado por Laura (6 intervenciones) el 19/11/2009 17:55:33
Gracias Victor. Al final lo conseguí con hilos, efectivamente. Pero como no accedía a variables comunes, ha sido muy fácil. Solo quería que se ejecutaran a la vez sin que uno tuviera que esperar al anterior para ejecutarse.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar