En una clase de posgrado, hemos tenido que usar semáforos para lograr el trabajo con hilos.sem_init (...): ¿Para qué sirve el parámetro pshared?
Nos indicaron que usáramos sem_init
junto con un montón de otros procedimientos sem_ * pero no recibimos mucha información sobre los detalles de cada uno de estos métodos sem_ *.
El (y archivo de cabecera) prototipo de sem_init
es the following:
#include <semaphore.h>
int sem_init(sem_t *sem, int pshared, unsigned int value);
pero no entienden lo que se utiliza el valor de pshared. De acuerdo con opengroup.org:
Si el argumento
pshared
tiene un cero no valor, a continuación, el semáforo se comparte entre los procesos ; en este caso, cualquier proceso que puede acceder el semáforosem
puede utilizarsem
para realizarsem_wait()
,sem_trywait()
,sem_post()
, ysem_destroy()
operaciones.
pero supongo que no entiendo la diferencia entre decir 1,2, 10, 25, 50000, etc. Creo que está diciendo que si el valor es 0, entonces el semáforo no se comparte. (Pero entonces, ¿cuál es el punto?)
¿Cómo utilizo adecuadamente este parámetro pshared
?
Respuesta impresionante, gracias por la explicación. –
Eres bienvenido. Gracias por el cumplido :). – quark
No es PC llamar a esta versión como perteneciente a GLIBC. Es POSIX.1-2001. –