table of contents
- bookworm-backports 1:4.26.0-1~bpo12+1
- testing 1:4.26.0-1
- unstable 1:4.26.1-1
sched_yield(2) | System Calls Manual | sched_yield(2) |
NAZWA¶
sched_yield - oddaje procesor
BIBLIOTEKA¶
Standardowa biblioteka C (libc, -lc)
SKŁADNIA¶
#include <sched.h>
int sched_yield(void);
OPIS¶
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.
WARTOŚĆ ZWRACANA¶
Po pomyślnym zakończeniu sched_yield() zwraca zero. Po błędzie zwracane jest -1 i ustawiane errno wskazując błąd.
BŁĘDY¶
W implementacji linuksowej, sched_yield() zawsze kończy się powodzeniem.
STANDARDY¶
POSIX.1-2001, POSIX.1-2008.
UWAGI¶
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.
Systemy POSIX-owe, na których dostępny jest sched_yield() definiują w <unistd.h> _POSIX_PRIORITY_SCHEDULING.
Strategiczne wywoływanie sched_yield() może poprawić wydajność, dając szansę innym wątkom lub procesom na uruchomienie gdy zasoby, o które toczy się (ścisła) rywalizacja (np. blokady wzajemnego wykluczania), zostaną uwolnione przez wywołującego. 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_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.
ZOBACZ TAKŻE¶
TŁUMACZENIE¶
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.
30 października 2022 r. | Linux man-pages 6.03 |