[英]java.time.Instant (1.8) is thread safe?
Instant instant;
void updateBy(){
instant = Instant.now();
}
如果是,如何证明Instant是线程安全的?
根据实施说明下的Instant
文档:
此类是不可变的并且是线程安全的。
如何证明Instant是线程安全的?
分析(使用合理的数学/形式方法)源代码,以证明其满足线程安全的所有要求。 那是证明某些东西是线程安全的唯一方法。
您无法通过测试证明这一点。
您可以按任何方式测试非线程安全代码,并通过安全测试。 但这并不能证明任何事情。 在不同的OS平台或不同的Java版本(可能是将来的版本)上,测试仍可能失败。
(您可以通过测试来证明某些事情不是线程安全的。如果测试显示了非线程安全行为的无可争辩的症状,那就是“存在证明”。)
对于Instant
类,这应该是没有意义的。 javadoc 指定 Instant
类是线程安全的。 除非您有特定的理由认为该类不是线程安全的(这将是一个真正的JVM bug ),否则建议不要浪费时间寻找可能不存在的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.