AtomicReference를 사용하여 최후의 단일 작업 함정 막기
14Jun10
public PlayerScore getHighScore() {
ServletContext ctx = getServletConfig().getServletContext();
AtomicReference holder = (AtomicReference) ctx.getAttribute("highScore");
return holder.get();
}
public void updateHighScore(PlayerScore newScore) {
ServletContext ctx = getServletConfig().getServletContext();
AtomicReference holder = (AtomicReference) ctx.getAttribute("highScore");
while (true) {
HighScore old = holder.get();
if (old.score >= newScore.score)
break;
else if (holder.compareAndSet(old, newScore))
break;
}
}
Advertisement
Filed under: Uncategorized | Leave a Comment

No Responses Yet to “AtomicReference를 사용하여 최후의 단일 작업 함정 막기”