Sun の「Core Servlets and JavaServer Pages vol 2」でセッション カウンターの例を見ました。
カウンターは単純に構築され、 /を使用HttpSessionListener
してセッション数を増減します。sessionCreated
sessionDestroyed
public class SessionCounter implements HttpSessionListener {
private int currentSessionCount = 0;
public void sessionCreated(HttpSessionEvent event) {
currentSessionCount++;
}
...
public int getTotalSessionCount() {
return(totalSessionCount);
}
... // counter decrement, self registering in context attribute etc.
リスナーは自分自身をコンテキストに登録するため、servlets
それにアクセスしてカウンター値を取得できます。
同期ブロックはありません。
それは安全ですcurrentSessionCount
かvolatile
?
currentSessionCount
CPUレジスタにキャッシュされ、リクエストを処理する他のスレッドの正確な値で表示されない可能性がありservlets
ます?