Совместное использование переменных в нескольких сеансах - PullRequest
0 голосов
/ 21 декабря 2010

Я знаю, что не могу иметь глобальную переменную в своем бэкэнд-коде (java или php или что-то еще), и разные пользователи (и, следовательно, сеансы) видят одно и то же значение.Если мне нужно поделиться некоторыми значениями между этими пользовательскими сеансами, мне нужно записать их в БД и каждый раз читать их.Это кажется мне очень расточительным.

Я понимаю, что процесс apache (или сервер приложений) будет работать, и поэтому глобальные значения не будут работать, но если я смотрю на специализированное приложение, есть ли веб-сервер, который позволяет мне это делать?Это должно быть возможно на веб-сервере, который использует потоки, а не разветвляет процессы.Но если мне нужно разделить глобальную память, мне понадобятся какие-то блокировки для правильного доступа к ним.Я понимаю, что он может (и в основном будет) действительно глючить, но ухудшит ли он производительность по сравнению с БД?

Мысли?

  • Пав

1 Ответ

0 голосов
/ 21 декабря 2010

Я не уверен, что это полностью правда.Apache будет обрабатывать каждое пользовательское соединение индивидуально - правильно.Тем не менее, я знаю, что в Java возможно иметь объект Singleton, существующий на протяжении всего жизненного цикла приложения, в котором вы могли бы потенциально хранить значения, которые будут использоваться во всех пользовательских сеансах.

При обработке каждого пользовательского соединенияна стороне сервера каждый доступ к этому синглтону будет обращаться к одному и тому же объекту - поэтому к тем же значениям.

Возможно, вы захотите еще немного изучить объекты области приложения.Я не уверен, чего именно вы пытаетесь достичь из-за отсутствия варианта использования, но вы можете обнаружить, что веб-приложения Java могут сделать больше, чем вы ожидаете, в этой области.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...