Was ist Pthread_cond_signal?
Was ist Pthread_cond_signal?

Video: Was ist Pthread_cond_signal?

Video: Was ist Pthread_cond_signal?
Video: Lab 6: Synchronization and Condition Variables 2024, November
Anonim

Die pthread_cond_signal () Funktion soll mindestens einen der Threads entsperren, die auf der angegebenen Bedingungsvariablen cond blockiert sind (falls irgendwelche Threads auf cond blockiert sind). Wenn mehr als ein Thread für eine Bedingungsvariable blockiert wird, soll die Planungsrichtlinie die Reihenfolge bestimmen, in der Threads entsperrt werden.

Was ist Pthread_cond_t?

BEZEICHNUNG. Die pthread_cond_wait () und pthread_cond_timedwait() Funktionen werden verwendet, um eine Bedingungsvariable zu blockieren. Sie werden mit vom aufrufenden Thread gesperrtem Mutex aufgerufen, oder es kommt zu undefiniertem Verhalten.

Warum benötigt Pthread_cond_wait außerdem einen Mutex? Die mutex wird verwendet, um die Bedingungsvariable selbst zu schützen. Deshalb bist du brauchen es schloss vor dir tun ein warten. Wenn dann die Bedingungsvariable signalisiert oder gesendet wird, werden einer oder mehrere Threads auf der Warteliste aufgeweckt und die mutex wird für diesen Thread auf magische Weise wieder gesperrt.

Außerdem, wie verwendet man Bedingungsvariablen?

Im typischen verwenden , ein Zustand Ausdruck wird unter dem Schutz einer Mutex-Sperre ausgewertet. Wenn das Zustand Ausdruck ist falsch, der Thread blockiert auf dem Bedingungsvariable . Die Bedingungsvariable wird dann von einem anderen Thread signalisiert, wenn er die ändert Zustand Wert.

Was ist Pthread_mutex_t?

pthread_mutex_t wird verwendet, um ein Objekt vom Typ Mutex zu deklarieren. daher: pthread_mutex_t mymutexvariable; Sie würden dann die Mutex-Variable verwenden, um einen Mutex zu sperren und zu entsperren.

Empfohlen: