该方法是否System.currentTimeMillis()
实现为对底层操作系统进行系统调用以接收当前时间?
我问,因为据我所知,该方法运行速度非常快,只需6个CPU时钟,但这没有意义,因为已知系统调用很慢.
我在这里错过了什么?
System.currentTimeMillis()
通常不需要切换到内核模式.OS提供了一种机制,允许通过将相应的内核页面直接映射到应用程序地址空间来从用户模式读取当前时间
例如System.currentTimeMillis()
Linux上的Oracle JDK和OpenJDK实现调用glibc gettimeofday
函数.此调用通过以下方式直接从用户空间访问内核数据vDSO
.