[英]Event timestamps in a multi-threaded environment
我正在为Web服务编写一些代码,我想跟踪请求的传入速度。我通过使用System.nanoTime()
记录每个请求的时间戳来实现此目的。 我之所以选择System.currentTimeMillis()
是因为我只关心相对于当前时间的时间,而不关心任何日历,并且我不希望它受系统时钟更新的影响。
但是,由于每个CPU内核的启动时间都不同,因此nanotime()
似乎在多核环境中不能很好地发挥作用。
我正在寻找一种方法来获取数字( long
)时间戳,即:
有任何想法吗?
除非显式同步线程,否则无法保证产生时钟值的方式。 显然,它会对性能产生影响。 您应该重新设计系统,使其不依赖这种时钟。 如果您需要多线程系统中的计时,也许您应该考虑Vector Clock 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.