Есть ли у бинов @SessionScoped проблемы параллелизма?
Очевидно, легко иметь несколько параллельных запросов для доступа к одному и тому же компоненту @SessionScoped в контексте веб-приложения. Правильно ли я считаю, что при обращении к компоненту @SessionScoped в этих запросах мне нужно явно контролировать синхронизацию?
1 ответ
Зависит от того, что вы подразумеваете под:
явно контролировать синхронизацию при доступе к бину @SessionScoped в этих запросах
Вы правы, что может быть несколько потоков, обращающихся к @SessionScoped
боб параллельно. Поэтому, как правило, вы должны заботиться о безопасности потоков. Необходимость явного управления синхронизацией (или вообще синхронизации) зависит от того, как общее состояние используется или изменяется из разных потоков. Если вы используете классы из java.util.concurrent
или же java.util.concurrent.atomic
Вы можете достичь идеальной безопасности потоков без единого synchronized
заявление.
Но да, вы должны заботиться о безопасности потоков.