一次查询线上BUG时,发现JDK获取cpu核心数不许确,致使程序运行过程当中出现了不符合预期的状况,由于在线上docker环境的JDK代码中获取的cpu核心数其实是docker宿主机的cpu核心数。java
因而,网上搜索了一下,确实是存在这个状况的,这么说是由于在后来的jdk版本中,JDK加强了对docker的支持,因此如今的状况是在有些版本的JDK版本下,获取CPU核心数不许确,但在另外的一些JDK版本下获取CPU核心数是准确的。docker
JDK官方博客对这个状况进行了说明,也说明具体修复的版本。java-se-support-for-docker-cpu-and-memory-limitsoracle
虽然,官方进行了修复,可是想要升级JDK版本号的话,也须要特别注意一下。由于Oracle公司在2019年4月16往后发布的版本都已经使用了新的协议,新协议代表对我的开发、测试免费,而其余状况须要订阅Oracle服务,也就是商用须要付费。测试
具体的详细状况参考:
https://www.jianshu.com/p/040a1315bce5orm