[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 12455] Re: Thread yield() の実 装( Re: 「 Java Concurrency in Practice 」を読 む会 第 2 回議事録)
高橋(徹)です。
#12月の会場は抽選外れてしまいました。
""TAKAHASHI, Tomohiro" <t_takahashi@xxxxxxxxxxxxxx>"さんは書きました:
> > Threadクラスのyieldはnativeメソッドでした。
> > 簡潔に書くと、デフォルトの実装は
> > Linuxでは、POSIX.1bのsched_yield()を呼び出します。
> > Solarisでは、Solaris OSのシステムコール thr_yield()を呼び出します。
> > Windowsでは、Win32 APIのSwitchToThreadを呼び出します。
> >
> > ただ、設定によってはsleepを呼び出すようになっています。
>
> この設定というのが気になりますが、どのような設定なのでしょうか? JVMのパラメータ?
少し正確に記述します。
Thread.yieldが呼ばれると、条件によって下記のいずれかの処理となります。
(1)なにもせずただreturnする
(2)os::sleepを呼び出す
(3)os::yieldを呼び出す
(1)は、コマンドオプションで-XX:+DontYieldALotを指定したときの処理です。
(2)は、コマンドオプションで-XX:+ConvertYieldToSleepを指定したときの処理です。
(3)は、それ以外のときの処理です。
--
TAKAHASHI,Toru
torutk@xxxxxxxxxxxx