Instant instant;
void updateBy(){
instant = Instant.now();
}如果是,如何证明即时线程是安全的?
发布于 2018-11-21 01:27:33
根据实现说明下的Instant文档:
这个类是不可变的和线程安全的。
发布于 2018-11-21 02:07:12
如何证明即时线程是安全的?
分析(使用健全的数学/形式化方法)源代码,以证明它满足了线程安全的所有要求。这是证明是线程安全的唯一方法。
你不能通过测试来证明这一点。
您可以任意方式测试非线程安全代码,并通过安全测试。但这证明不了什么。测试仍然可能在不同的操作系统平台上失败,或者在Java的不同版本(可能是将来)上失败。
(你可以通过测试来证明某些东西是不安全的。如果测试显示出非线程安全行为的无可争辩的症状,那就是“存在的证据”)。
对于Instant类来说,这应该是没有意义的。javadoc指定Instant类是线程安全的.除非您有特定的理由相信这个类不是线程安全的(这将是,一个真正的JVM bug),那么最好不要浪费时间去寻找可能不存在的东西。
https://stackoverflow.com/questions/53404025
复制相似问题