Ver Mensaje Individual
  #7 (permalink)  
Antiguo 26/05/2013, 20:24
williamfj
 
Fecha de Ingreso: mayo-2011
Mensajes: 49
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Pthread tipo c -> c++

Paso a comentar mi experiencia con el manejo de pthreads tipo c en c++....

Como escribí en un post anterior creé una función publica dentro de mi clase formulario par escribir dos cuadros de texto diferentes creyendo que no tendría problemas ..pero evidentemente no fue así ,según párese la clase principal no separa los eventos de dos clases diferentes pertenecientes a el, motivo por el cual los textos se cruzaban en el mejor de los casos ,a veces se corrompían todas las etiquetas y en la mayoría de los casos se segmentaba el programa....:(


Así que llegue a a la conclusión que lo mejor para manejar pthreads es hacerlos lo mas independientes posible o en su defecto usar semáforos que por lo que he leído hay que tener bastante cuidado al usarlos..

según leí en un documento en internet en el cual explican que el desbloqueo del mutex no grantiza que sea seguro acceder al recurso compartido.

el documento se llama Taller de pthreads
y explican lo siguiente


... Peligroso...
pthread mutex lock(&m)
pthread cond wait(&vc, &m)
pthread mutex unlock(&m)
usar paquebote(...); ///recurso compartido


....Inseguro....
pthread mutex lock(&m)
if(!hay paquebote)
pthread cond wait(&vc, &m)
pthread mutex unlock(&m)
usar paquebote(...);


....Correcto...
pthread mutex lock(&m)
while(!hay paquebote)
pthread cond wait(&vc, &m)
pthread mutex unlock(&m)
usar paquebote(...);

no comprendo muy bien como funciona la comprobación extra ....alguien si lo capta???