3
내용의 atomics package summary의 끝에 주석이 추가원자 복식
을 ... 당신은 또한
Double.doubleToLongBits
및Double.longBitsToDouble
변환을 사용하여Float.floatToIntBits
및Float.intBitstoFloat
변환 및doubles
를 사용하여floats
를 보유 할 수 있습니다.
은 분명히 당신은 단지 double
값에 대한 원자 addAndGet
에 함께 때문에 해당 일 것입니다 무슨이 값을 추가 할 수 없습니다.
private AtomicLong sum = new AtomicLong();
...
// This would almost certainly NOT work.
public long add(double n) {
return sum.addAndGet(Double.doubleToLongBits(n));
}
synchronized
을 사용하지 않으려 고 할 수 있습니다.
아! 예! JNI와 어셈블러 없이는 이것이 어떻게 유일한 방법인지 알 수 있습니다. 완전성을 위해 코드를 여기에 게시 할 수 있습니까? 'addAndGet'만으로 충분합니다. – OldCurmudgeon
솔루션이 게시되었습니다. –
굶주림은 이론상 문제가 될 수 있지만 실제로는 실제로 발생하지 않는다고 생각합니다. – biziclop