У меня возникло сомнение в использовании потоков в управлении сеансами. Это ...ThreadLocal для управления данными сеанса
В потоке Локальный, который когда-либо поток, который создает локальный объект потока, имеет доступ к этому объекту сеанса, и только этот поток может изменять данные объекта сеанса. Для завершения одного запроса пользователя может быть много потоков. Итак, как насчет всех других потоков, которые участвуют в заполнении одного запроса пользователя.
Они не получат доступ к изменению объекта сеанса, так как любой поток создает локальный объект Thread, получает свой собственный объект сеанса, поэтому другие потоки, которые запускаются для завершения одного пользовательского запроса, могут не обновлять свои данные до объекта сеанса, к которому они действительно хотели.
Я имею в виду, если thread-1 и thread-2 участвуют в заполнении пользовательского запроса, но thread-1 приходит для создания объекта threadlocal, а thread-2 выполняет другие коды как часть запроса, но после thread-2 завершение, он не может обновить данные сеанса, потому что только tharead-1 имеет доступ к сеансу, так как он создал объект threadlocal.
Итак, как мы решаем эту проблему.
Мы убеждаемся, что только один поток участвует в заполнении запроса одиночных пользователей? или
Как мы уверены, что какая-либо нить, которая создает объект threadlocal, подходит только для обновления данных сеанса, связанных с этим запросом?
Пожалуйста, дайте мне знать, если вам нужны какие-либо дополнительные детали, чтобы ответить на этот вопрос .. – santhosh
Он уже ответил. Не используйте привязанные к потоку, но связанные с запросами хранилища. Это невозможно сделать в локальном режиме, например, в моем примере кода или с использованием идентификатора запроса и API хранения, например, объяснения в моем редактировании (последний абзац после примера кода). Позвольте мне, какие дополнительные данные вам нужно удовлетворить. – LoganMzz