问题的产生:
Java Runtime 包中的 availableProcessors() ,可以获取当前的设备的 CPU 核数。然而,在比较远古的 JVM 1.8 版本中,若在容器中执行这个方法,我们拿到的会是物理机的核心数,而不是容器被分配的核心数。后来的 JVM 进行了改良,解决了这个问题。
于是我开始调查,JVM 是如何拿到这个数值的。
Java Runtime 包中的 availableProcessors() ,可以获取当前的设备的 CPU 核数。然而,在比较远古的 JVM 1.8 版本中,若在容器中执行这个方法,我们拿到的会是物理机的核心数,而不是容器被分配的核心数。后来的 JVM 进行了改良,解决了这个问题。
于是我开始调查,JVM 是如何拿到这个数值的。