Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all ![bug](/img/bug.png)
![bug](/img/bug.png)
名前
sched_yield - プロセッサーを空け渡す(yield)
書式
#include <sched.h> int sched_yield(void);
説明
sched_yield() を呼び出すことで、呼び出したスレッドが CPU の使用権を手放すことができる。 そのスレッド は、そのスレッドの静的プライオリティのキューの末尾に 移動し、新しいスレッドが走り始める。
返り値
成功した場合は sched_yield() は 0 を返す。 エラーの場合は -1 が返され、 errno が適切に設定される。
エラー
Linux の実装では、 sched_yield() は常に成功する。
準拠
POSIX.1-2001.
注意
sched_yield() を呼び出した時点で最大優先度のリストの中に呼び出し元のスレッドしか 存在しなければ、そのス レッドは呼び出し後も走り続けることになる。 POSIX システムで sched_yield() は <unistd.h> に _POSIX_PRIORITY_SCHEDULING が定義されている場合にのみ使 用可能である。 sched_yield() を戦略的に呼び出すことで、(極度に) 競合するリソース (mutex など) を呼び出し元が解放した際 に他のスレッドやプロセスに実行機会を与えることで、 性能を上げることができる。 sched_yield() を必要もない のに呼び出したり、不適切な場面 (例えば、他のスケジューリング 対象となるスレッドが必要とするリソースを呼び 出し元が保持したままの状態) で呼び出したりするのは避けること。なぜなら、 sched_yield() の呼び出しより不 必要なコンテキストスイッチが起こり、システム性能が 劣化する結果になるからである。
関連項目
Linux のスケージュリング (scheduling) については sched_setscheduler(2) を参照。 Programming for the real world - POSIX.4 by Bill O. Gallmeister, O'Reilly & Associates, Inc., ISBN 1-56592-074-0.
この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクトの説明とバグ報告 に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。