스레드 안전이 Java의 멤버 매개 변수를 처리 할 때 이미 역할을하는지 알고 싶습니다. Java에서 메서드 매개 변수의 스레드 안전
은 당신이 APIboolean moreThanTen(long value) {
if(value > 10) return true;
else return false;
}
이 방법은 스레드 안전 할 것입니다 방법을 말해봐?
모든 스레드는 로컬 변수에 대해 자체 스택을 가지고 있기 때문에 상상할 수 있습니다. 그리고 프리미티브는 모두이 로컬 스택에 저장됩니다.
확실하지 않은 유일한 이유는 long
이 두 개의 별도 읽기이므로 일반적으로 스레드로부터 안전하지 않다는 것입니다.
제 질문은 : 메소드의 매개 변수가 원자 적으로 복사되는지 확인할 수 있습니까? 따라서 프리미티브를 매개 변수로 사용하는 경우 (심지어 float
/long
) 로컬 변수 스레드 안전성에 복사하는 동안 문제가되지 않을 수 있습니까?
감사합니다.
변경 가능한 상태가 없으면 메서드가 스레드로부터 안전함을 의미합니다. – Andreas