yield 用のシステムコールを呼び出すだけ.
ただし, ConvertYieldToSleep オプションが指定されている場合は, sleep 用のシステムコールを用いる. また, yield 用のシステムコールが使えない場合も sleep 用のシステムコールを用いる.
JVM_Yield() (= java.lang.Thread.yield())
-> ConvertYieldToSleep オプションの値に応じて, 2通りに分岐
   * ConvertYieldToSleep オプションが指定されている場合:
     -> os::sleep()    (<= 引数の interruptible は false)
        -> OS によって処理が異なる.
           * Linux の場合
             -> ParkEvent::park()
           * Solaris の場合
             以下のどちらかを呼び出す
             -> thr_yield()  (<= 指定されたスリープ時間が 0 以下の場合)
             -> os_sleep()   (<= それ以外の場合)
           * Windows の場合
             -> Sleep()
   * ConvertYieldToSleep オプションが指定されていない場合:
     -> os::yield()
        -> OS によって処理が異なる.
           * Linux の場合
             -> sched_yield()  (<= スレッドが SCHED_OTHER なんだが, この場合も sched_yield() でいいんだっけ?? 要確認 #TODO)
           * Solaris の場合
             -> os::sleep()    (<= 引数の interruptible は false)
                -> (上述)
           * Windows の場合
             -> os::NakedYield()
                以下のどちらかを呼び出す.
                -> SwitchToThread()
                -> Sleep()
See: here for details
java.lang.Thread.yield() は JVM_Yield() で実装されている.
    ((cite: jdk/src/share/native/java/lang/Thread.c))
    static JNINativeMethod methods[] = {
    ...
        {"yield",            "()V",        (void *)&JVM_Yield},
See: here for details
See: here for details
See: here for details
(#Under Construction) See: here for details
See: here for details
(#Under Construction) See: here for details
See: here for details
See: here for details
See: here for details
(#Under Construction) See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.