SCHED_YIELD
Section: Linux Programmer's Manual (2)
Updated: 2008-10-18
Index
JM Home Page
roff page
名前
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
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- 準拠
-
- 注意
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 03:26:53 GMT, April 25, 2010