In einer Graduate-Klasse mussten wir Semaphoren verwenden, um mit Threads zu arbeiten.sem_init (...): Für was ist der Pshared-Parameter?
Wir wurden angewiesen, sem_init
zusammen mit einer Reihe anderer sem_ * -Prozedur zu verwenden, aber uns wurden nicht viele Informationen über die Details jeder dieser sem_ * -Methoden gegeben.
Der Prototyp (und Header-Datei) von sem_init
ist the following:
#include <semaphore.h>
int sem_init(sem_t *sem, int pshared, unsigned int value);
aber ich verstehe nicht, was die pshared Wert für verwendet wird. Nach opengroup.org:
Wenn das Argument
pshared
einen von Null Wert hat, dann wird der Semaphor zwischen Prozessen geteilt werden; in diesem Fall jeder Prozess, dersem
zur Durchführungsem_wait()
,sem_trywait()
,sem_post()
, undsem_destroy()
Operationen zugreifen kann das Semaphorsem
verwenden.
aber ich denke, ich verstehe nicht den Unterschied zwischen etwa 1,2, 10, 25, 50000, usw. Ich denke, es ist zu sagen, dass, wenn der Wert 0 ist dann die Semaphore nicht geteilt werden. (Aber dann, was ist der Punkt?)
Wie verwende ich diesen pshared
Parameter richtig?
Super Antwort, danke für die Erklärung. –
Sie sind herzlich willkommen. Danke für das Kompliment :). – quark
Es ist kein PC diese Version als GLIBC zu bezeichnen. Es ist POSIX.1-2001. –