私は 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するため、これは810 進数です。
への引数AffinitySupport.setAffinity()はビット マスクです。
アフィニティを に設定する1 << 3と、スレッドは論理 CPU #3 で実行できます。