C/Visual C - Duda mutex y declaración de variables

 
Vista:

Duda mutex y declaración de variables

Publicado por Cris_Y (6 intervenciones) el 18/02/2010 13:13:36
Hola buenas,

quería haceros un par de consultas sobre un programa que estoy realizando.

Es un programa cliente-servidor con sockets en C. La duda es en el cliente: el cliente recibe continuamente paquetes del servidor, entonces en el cliente creo un hijo. El padre se encarga de rellenar unos arrays y una matriz de forma secuencial, a medida que le llegan los paquetes del servidor; mientras, el hijo se encarga de acceder a diferentes filas de esa matriz y esos arrays y opera con ellos.

Duda 1:

Ya que el hijo tan sólo va a leer o modificar filas de estas variables compartidas, había pensado en hacer un mutex (por si el hijo va "más rápido"que el padre y pretende acceder a una fila que aún no existe y leer u operar). Pero no me decido; ¿qué uso?, ¿mutex?, ¿monitor?, ¿cerrojo?, ¿semáforo?... todo viene a ser lo mismo, pero me gustaría que me recomendarais qué es más útil.

Por cierto, el hijo lo creo con fork(), ¿sería mejor, que utilizara p_thread_create?

Duda 2:

parte del pseudocódigo del programa es:

Creo hijo

Ciclo for

//PADRE

si no es el primer paquete que recibe, actualiza sin más

si es el primero, crea la variables que va a utilizar él Y EL HIJO

//HIJO

Operaciones, lecturas y demás

Fin ciclo for

Mi duda es, ¿puedo crear las variables que utiliza el hijo en ese fragmento de código del padre, o es un error hacerlo así?. Es que si las inicializo en el hijo, me las crearía a cada vuelta del ciclo for, y no quiero eso. Me lío un poco siempre con el tema de dónde declarar variables :(

Muchas gracias de antemano, espero haberme explicado bien y que alguien pueda ayudarme :)
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:Duda mutex y declaración de variables

Publicado por Tom (619 intervenciones) el 18/02/2010 17:13:32
Yo lo haría con threads, es más eficaz.
Y usando threads, el mecanismo más natural y más simple es el de los mutexes.

Echa un ojo a esta página:

http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html
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