Machine-translated by Google. Questions are authored in English.
Top

Discussion

Which of these correctly declares a counter optimised for frequent updates from many threads?

  • A.LongAdder hits = new LongAdder();
  • B.LongAdder hits = new LongAdder(0);
  • C.AtomicLong hits = new LongAdder();
  • D.LongAdder hits = LongAdder.create();

Answer: A

Correct answer: LongAdder hits = new LongAdder();

LongAdder starts at zero and takes no constructor argument. It outperforms AtomicLong under heavy contention by spreading the count over several cells and summing them only when the value is read - which is exactly the trade that suits a frequently incremented counter read rarely.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.