我想知道在Java中处理成员参数时,线程安全是否已经发挥了作用。
比如说你有一个API的方法。
这种方法是线程安全的吗?
我认为这种方法是线程安全的,因为每个线程都有自己的堆栈来存储本地变量,而基本类型都存储在此本地堆栈中。
唯一让我不确定的是,long类型需要进行两次读取,因此通常不是线程安全的。
我的问题是:我可以确定方法的参数是否原子复制吗?因此,当使用基本类型作为参数(即使是float/long)时,在将其复制到本地变量中时,我可以确定不会出现线程安全问题吗?
比如说你有一个API的方法。
boolean moreThanTen(long value) {
if(value > 10) return true;
else return false;
}
这种方法是线程安全的吗?
我认为这种方法是线程安全的,因为每个线程都有自己的堆栈来存储本地变量,而基本类型都存储在此本地堆栈中。
唯一让我不确定的是,long类型需要进行两次读取,因此通常不是线程安全的。
我的问题是:我可以确定方法的参数是否原子复制吗?因此,当使用基本类型作为参数(即使是float/long)时,在将其复制到本地变量中时,我可以确定不会出现线程安全问题吗?