[英]Apache Spark Reduce with java.lang.Math.max unexpected behaviour
[英]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.