Получил один и тот же Threadlocal для разных сессий - PullRequest
0 голосов
/ 30 августа 2018

Я отправил один и тот же запрос в проект Spring MVC с двумя браузерами, но получил один и тот же локальный поток, поэтому экземпляры в локальном потоке совпадают. , Почему?

1 Ответ

0 голосов
/ 30 августа 2018

Threadlocal связан с потоком / процессом, а не с сеансом. JVM на самом деле не знает и не заботится о концепции веб-сессий, это более высокий уровень абстракции.

Вполне возможно, что два веб-запроса с двумя сеансами обрабатываются одним потоком. Большинство серверов используют пул потоков, которые они используют повторно, а не создают новый поток для каждого запроса или даже сеанса. Если обработка первого запроса оставляет что-то в локальном потоке после того, как он завершит обработку запроса, то вот что найдет следующий запрос.


Храните данные, необходимые для каждой сессии, в HttpServletRequest.getSession () .

...