繁体   English   中英

java.lang.Math.max(int a,int b)线程安全吗?

[英]Is java.lang.Math.max(int a, int b) thread safe?

我想知道静态方法java.lang.Math.max(int a, int b)是否是线程安全的?

如果它不是线程安全的,您能否解释一下这种情况,由于使用一段代码并发访问多个线程而导致输出错误的情况?

它是线程安全的,为什么不呢? 它没有状态,调用时没有被修改的对象。 该方法只是一个if语句:

public static int max(int a, int b) {
    return (a >= b) ? a : b;
}

Math.max是完全无状态的,因此它是完全线程安全的。

您只能通过并发访问共享状态(至少有一个线程修改状态)来解决线程安全问题。

Math.max(a, b)没有任何状态,没有共享状态或其他状态,因此它的线程安全。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM