我正在查看 Java Thread Affinity 库(下面的链接),在一个示例中,亲和力是使用1 << 3
. 有人知道为什么是这样吗?
AffinitySupport.setAffinity(1 << 3);
我原以为它会设置为 1 或 2,例如在 2 核机器上说停留在核心 1 或 2 上。我显然在这里遗漏了一些东西。
我正在查看 Java Thread Affinity 库(下面的链接),在一个示例中,亲和力是使用1 << 3
. 有人知道为什么是这样吗?
AffinitySupport.setAffinity(1 << 3);
我原以为它会设置为 1 或 2,例如在 2 核机器上说停留在核心 1 或 2 上。我显然在这里遗漏了一些东西。
此语法使用左移运算符: http: //processing.org/reference/leftshift.html
所以基本上是二进制的1 << 3
意思1000
,所以这是8
十进制的。
to 的参数AffinitySupport.setAffinity()
是一个位掩码。
将关联设置为1 << 3
允许线程在逻辑 CPU #3 上运行。