CUBは子供の白熊

Java SE 8 実践プログラミングの練習問題を解く

第6章 並行処理の機能強化 : 問題 2 : LongAdder

問題

増加する ID 列を生成するためにLongAdderは役に立つか?
その答えの理由を述べよ

解答

LongAdderは、正しい値を取得できないので役に立たない

まずLongAdderincrementメソッドは、現在の値を返さない

■ 計算系のメソッド

void increment()
void add(long x)
void decrement()

値を取得するには、incrementメソッドの直後に

long sum()

メソッドを呼ぶ必要があるが、このときの戻り値がincrementメソッド呼び出し直後の値であることは(Java Doc にあるように)保障されない