BigDecimal
클래스의 compareTo()
메서드를 사용하는 Java 응용 프로그램에서 해당 유형 (기본적으로 "너무 큼")에 따라 문자열을 읽는 (큰) , double 또는 float). 응용 프로그램은 초당 매우 많은 수의 문자열을 읽으므로 성능 최적화가 필수적입니다.BigDecimal compareTo() 스레드 안전성
static final BigDecimal MAX_LONG = new BigDecimal(Long.MAX_VALUE);
static final BigDecimal MAX_FLOAT = new BigDecimal(Float.MAX_VALUE);
static final BigDecimal MAX_DOUBLE = new BigDecimal(Double.MAX_VALUE);
String value = readValue(); // Read the number as a string
BigDecimal number = new BigDecimal(value);
if (number.compareTo(MAX_DOUBLE) > 0)
{
...
}
else if (number.compareTo(MAX_FLOAT) > 0)
{
...
}
else if (number.compareTo(MAX_LONG) > 0)
{
...
}
따라서, 다중 스레드 환경에서이 질문에
- , 그것은 (정적 필드 주어진) 위의 비교를하는 것이 안전합니다 :
코드의 축약 발췌입니다 다음은?
- 위의 분류를 구현하는 스레드로부터 안전하고 빠른 방법이 있습니까?
* "성능 최적화가 필수적입니다."*이 특정 방법을 최적화해야한다는 결론에 어떻게 도달 했습니까? – NullUserException
나는 compareTo() 메서드가 아니라 내 코드를 참조하고 있었다. – PNS
질문은 의미합니다. 코드의 특정 부분을 최적화해야한다는 결론에 어떻게 도달 했습니까? – NullUserException