java threadlocal singleton - что это? - PullRequest
       47

java threadlocal singleton - что это?

4 голосов
/ 28 февраля 2011

Говоря по-дилетански, что это значит, когда кто-то говорит, что объект является нить локальным синглтоном в Java?Я был на лекции о Java Server Faces, и каждый раз, когда говорили о FacesContext - инструктор всегда напоминал нам, что это потоковый синглтон.

1 Ответ

14 голосов
/ 28 февраля 2011

Существует только один уникальный экземпляр FacesContext на поток.

FacesServlet создает ThreadLocal<FacesContext>в начале запроса сервлета HTTP и удаляет его в конце ответа сервлета HTTP, связанного с запросом сервлета HTTP.Всякий раз, когда вы делаете FacesContext#getCurrentInstance() в своем коде JSF, вы всегда получаете один и тот же экземпляр во всей обработке запросов / ответов сервлетов HTTP.

Поскольку запросы сервлетов HTTPвыполняется разными потоками, и экземпляр FacesContext присоединяется как локальная переменная потока к одному потоку, ни один из двух запросов HTTP-сервлетов не разделяет экземпляр с одинаковым FacesContext.

...