私は Java Thread Affinity lib (以下のリンク) を見ています。例では、アフィニティは を使用して設定されて1 << 3
います。これがなぜなのか誰か知っていますか?
AffinitySupport.setAffinity(1 << 3);
たとえば、2コアマシンでは、コア1または2にとどまると言うように、1または2に設定されると思っていたでしょう。明らかにここに何かが欠けています。
私は Java Thread Affinity lib (以下のリンク) を見ています。例では、アフィニティは を使用して設定されて1 << 3
います。これがなぜなのか誰か知っていますか?
AffinitySupport.setAffinity(1 << 3);
たとえば、2コアマシンでは、コア1または2にとどまると言うように、1または2に設定されると思っていたでしょう。明らかにここに何かが欠けています。
この構文では、左シフト演算子を使用します: http://processing.org/reference/leftshift.html
つまり、基本的には 2 進数1 << 3
を意味1000
するため、これは8
10 進数です。
への引数AffinitySupport.setAffinity()
はビット マスクです。
アフィニティを に設定する1 << 3
と、スレッドは論理 CPU #3 で実行できます。