pthread_yield(3-thr) pthread_yield(3-thr)
NAME
pthreadyield - Dem Scheduler mitteilen, daß der aktuelle Thread zur
Freigabe seines Prozessors bereit ist
SYNTAX
#include <pthread.h>
void pthreadyield();
BESCHREIBUNG
Die Routine pthreadyield() teilt dem Scheduler mit, daß der aktuelle
Thread dazu bereit ist, seinen Prozessor an andere Threads mit glei-
cher Priorität freizugeben. (Für die Freigabe des Prozessors an einen
anderen Thread mit höherer Priorität wird diese Routine nicht aufgeru-
fen.)
Wenn die Scheduling-Strategie des aktuellen Thread (wie in einem Auf-
ruf der Routine pthreadattrsetsched() oder pthreadsetscheduler()
angegeben) SCHEDFIFO oder SCHEDRR ist, überläßt diese Routine den
Prozessor anderen Threads mit gleicher oder höherer Priorität. Wenn
keine Threads mit gleicher Priorität zur Ausführung bereit sind, setzt
der Thread seine Ausführung fort.
Mit Hilfe dieser Routine können Kenntnisse über die Details einer
Anwendung dazu genutzt werden, die Ausgeglichenheit (Fairness) zu
erhöhen. Der Zugriff auf den Prozessor wird gerechter verteilt, indem
dem aktuellen Thread der Prozessor entzogen wird. Auch der Zugriff auf
gemeinsam genutzte Ressourcen wird besser verteilt, da der Prozessor
dem aktuellen Thread entzogen wird, sobald dieser die Ressource nicht
mehr benötigt.
Rufen Sie diese Routine auf, wenn ein Thread mit der Scheduling-Stra-
tegie SCHEDFIFO Code ausführt, der den Zugriff auf andere Threads auf
einem Einzelprozessor verweigert.
Verwenden Sie pthreadyield() mit Bedacht, da ein Mißbrauch zu unnöti-
gen Kontexwechseln führt, die nur den Gesamtaufwand, nicht aber die
Ausgeglichenheit (Fairness) erhöhen. Für einen Thread ist es bei-
spielsweise kontraproduktiv, anderen Vorrang zu gewähren, während er
eine benötigte Ressource gesperrt hält.
RÜCKGABEWERTE
Es werden keine Werte zurückgegeben.
SIEHE AUCH
pthreadattrsetsched(3-thr), pthreadsetscheduler(3-thr).
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98