Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

       sched_yield - освободить процессор

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <sched.h>

       int sched_yield(void);

ОПИСАНИЕ

       Вызов  sched_yield()  заставляет вызывающую нить освободить процессор. Нить перемещается в
       конец очереди согласно её статическому приоритету, и управление передаётся другой нити.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       При успешном выполнении sched_yield() возвращается 0; при  ошибке  возвращается  -1,  а  в
       errno содержится код ошибки.

ОШИБКИ

       В Linux-реализации sched_yield() всегда завершается успешно.

СТАНДАРТЫ

       POSIX.1-2001, POSIX.1-2008.

ЗАМЕЧАНИЯ

       Если  вызывающая  нить единственная в списке с самым высоким приоритетом, то она продолжит
       выполняться после вызова sched_yield().

       В   системах    POSIX,    в    которых    доступен    вызов    sched_yield(),    определён
       _POSIX_PRIORITY_SCHEDULING в <unistd.h>.

       Оперативные вызовы sched_yield() могут улучшить производительность, давая другим нитям или
       процессам шанс  поработать,  когда  (сильно)  оспариваемые  ресурсы  (например,  мьютексы)
       освобождаются  вызывающим.  Избегайте  частых  или  нецелесообразных вызовов sched_yield()
       (например, когда ресурсы, необходимые других планируемым нитям,  по-прежнему  удерживаются
       вызывающим),  так  как  это  приводит  к  чрезмерному переключению контекстов, что ухудшит
       производительность системы.

       Функция sched_yield() предназначена для использования с алгоритмами планирования реального
       времени (т. е., SCHED_FIFO или SCHED_RR). Использование sched_yield() с недерминированными
       алгоритмами планирования, такими как SCHED_OTHER, не определено и указывает на,  вероятно,
       неправильно разработанное приложение.

СМ. ТАКЖЕ

       sched(7)

ПЕРЕВОД

       Русский    перевод    этой    страницы    руководства   был   сделан   Alexander   Golubev
       <fatzer2@gmail.com>,  Azamat  Hackimov  <azamat.hackimov@gmail.com>,   Hotellook,   Nikita
       <zxcvbnm3230@mail.ru>,       Spiros       Georgaras       <sng@hellug.gr>,       Vladislav
       <ivladislavefimov@gmail.com>,   Yuri   Kozlov   <yuray@komyakino.ru>   и    Иван    Павлов
       <pavia00@gmail.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если  вы  обнаружите  ошибки  в  переводе этой страницы руководства, пожалуйста, отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.