Я пытаюсь выяснить, будет ли в этом фрагменте кода какое-либо состояние гонки. Если бы ключ не был Thread.currentThread, я бы подумал, что да. Но поскольку поток сам по себе является ключевым, как возможно иметь состояние гонки? Никакой другой поток не может обновить тот же ключ в HashMap!
public class SessionTracker {
static private final Map<Thread,Session> threadSessionMap = new HashMap<Thread,Session>();
static public Session get() {
return threadSessionMap.get(Thread.currentThread());
}
static public void set(Session s) {
threadSessionMap.put(Thread.currentThread(),s);
}
static public void reset() {
threadSessionMap.remove(Thread.currentThread());
}
}