Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] funciones dentro de pthreads

Estas en el tema de funciones dentro de pthreads en el foro de C/C++ en Foros del Web. hola creo este nuevo hilo porque tengo una duda, bueno en realidad son varias pero la que mas me incomoda es no poder aclarar que ...
  #1 (permalink)  
Antiguo 19/05/2013, 10:00
 
Fecha de Ingreso: mayo-2011
Mensajes: 49
Antigüedad: 13 años
Puntos: 0
funciones dentro de pthreads

hola creo este nuevo hilo porque tengo una duda, bueno en realidad son varias pero la que mas me incomoda es no poder aclarar que ocurre cuando dentro de un pthread se invoca una función normal como strcpy o una declarada por mi como podria ser int buscar ();...
que asta donde se tienen asignado un lugar en memoria estático lo cual podría causar muchos problemas si dos pthreads invocan la misma función al mismo tiempo en ambientes de multiprocesador.

lo anterior es lo que entiendo de ensayos que he realizado ,no lo he leído en ninguna parte por lo que puedo estar equivocado ..pero me gustaría saber si al invocar funciones de esta manera podría llegar a tener grandes dolores de cabeza.

Se que una solución seria hacer que las funciones pthreads tengan la propiedad join ..pero me párese que se pierde la utilidad de la concurrencia..

gracias por cualquier ayuda
  #2 (permalink)  
Antiguo 19/05/2013, 11:41
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: funciones dentro de pthreads

También están los mutex...

Pero no, dudo que traiga riesgo alguno. De hecho puedes crear varios threads cogiendo la misma función de destino, y lo de invocar no es más que un técnisismo (copiar los argumentos y hacer un salto hacia el código de la función).
  #3 (permalink)  
Antiguo 19/05/2013, 12:08
 
Fecha de Ingreso: mayo-2011
Mensajes: 49
Antigüedad: 13 años
Puntos: 0
Respuesta: funciones dentro de pthreads

Gracias por la respuesta amchacon ,si no entendí mal su repuesta no existe riesgo de corrupción de datos al invocar una función normal dentro de un pthread..con la posibilidad que sea invocada simultáneamente por pthreads paralelos.

me "patina" el concepto de las funciones con esta respuesta pero se ve que tiene mas experiencia con el manejo de hilos que yo.. así que seguiré con mi proyecto usando las funciones creadas por mi sin tanta desconfianza.
  #4 (permalink)  
Antiguo 19/05/2013, 12:32
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: funciones dentro de pthreads

Si no utilizas variables globales no hay problemas. Ya que cada llamada a funcion crea su propio marco de activacion.
  #5 (permalink)  
Antiguo 19/05/2013, 12:35
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: funciones dentro de pthreads

Cita:
Iniciado por williamfj Ver Mensaje
Gracias por la respuesta amchacon ,si no entendí mal su repuesta no existe riesgo de corrupción de datos al invocar una función normal dentro de un pthread..con la posibilidad que sea invocada simultáneamente por pthreads paralelos.

me "patina" el concepto de las funciones con esta respuesta pero se ve que tiene mas experiencia con el manejo de hilos que yo.. así que seguiré con mi proyecto usando las funciones creadas por mi sin tanta desconfianza.
Tengo que decir que no soy un experto en hilos. Pero probando códigos como este:

Código:
#include <pthread.h>

void* Inicio(void*)
{
    sleep(1000);
    return NULL;
}

int main()
{
    pthread_t identificador[3];
    int i = 0;

     for (; i < 3;i++)
       pthread_create(&identificador[i], NULL,
       Inicio, NULL);

   for (i = 0; i < 3;i++)
    pthread_join(identificador[i],NULL);

    return 0;
}
Vemos que no hay problemas si tenemos dos funciones compartiendo el mismo hilo (este ejemplo se puede complicar tanto como quieras).

El único sosticio de polémica sería la "invocación", pero esque una invocación no es más que un salto en el código. No se modifica la función y por tanto no debería dar problema.

EDITO: Creo que sam lo ha explicado con palabras más claras.
  #6 (permalink)  
Antiguo 19/05/2013, 12:51
 
Fecha de Ingreso: mayo-2011
Mensajes: 49
Antigüedad: 13 años
Puntos: 0
Respuesta: funciones dentro de pthreads

Quedo muy agradecido con sus aportes....y estaré publicando mas dudas con respecto al tema dado que me párese de un grado de complejidad alto.

Etiquetas: funcion, funciones, int
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:00.