sched_yield(2) System Calls Manual sched_yield(2)

sched_yield - oddaje procesor

Standardowa biblioteka C (libc, -lc)

#include <sched.h>
int sched_yield(void);

sched_yield() powoduje zrezygnowanie z używania procesora przez wywołujący wątek. Wątek będzie przeniesiony na koniec kolejki swojego statycznego priorytetu i uruchomiony zostanie kolejny wątek.

Po pomyślnym zakończeniu sched_yield() zwraca zero. Po błędzie zwracane jest -1 i ustawiane errno wskazując błąd.

W implementacji linuksowej, sched_yield() zawsze kończy się powodzeniem.

POSIX.1-2008.

POSIX.1-2001 (lecz opcjonalne). POSIX.1-2008.

Przed POSIX.1-2008 systemy, na których dostępny jest sched_yield() definiowały w <unistd.h> _POSIX_PRIORITY_SCHEDULING.

sched_yield() jest przeznaczony do użycia z politykami szeregowania zadań czasu rzeczywistego (tj. SCHED_FIFO lub SCHED_RR). Korzystanie z sched_yield() z politykami szeregowania zadań, które nie są deterministyczne, takimi jak SCHED_OTHER, daje nieokreślony rezultat i prawdopodobnie oznacza, że aplikacja tak działająca wymaga przeprojektowania.

Jeśli wątek wywołujący jest jedynym wątkiem w najwyższej liście priorytetów, po wywołaniu sched_yield() jego działanie będzie trwać dalej.

Należy unikać niepotrzebnego lub nieodpowiedniego (np. gdy zasoby potrzebne przez inne szeregowane wątki są wciąż utrzymywane przez wywołującego) wywoływania sched_yield(), ponieważ dokonywanie tego będzie powodowało niepotrzebne przełączanie kontekstów, co wpływa negatywnie na wydajność systemu.

sched(7)

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.

2 maja 2024 r. Linux man-pages 6.9.1