|
|
|
Синхронизация доступа к сервлету в Томкэте
|
|||
|---|---|---|---|
|
#18+
Знатокам Томката вопрос: У меня есть сервлет, я решил проверить сколько раз он выполняется при одновременном доступе к нему большого числа юзеров. Для этого написал в конце метода service() сервлета код счётчика, который храню в контексте сервлета и вывожу в лог Томкэта: int counter = 1; if (getServletContext().getAttribute("counter") != null) { counter = ((Integer)getServletContext().getAttribute("counter")).intValue() + 1; } getServletContext().setAttribute("counter", new Integer(counter)); System.out.println(counter); т.е. когда 1-ы раз выполнится сервлет, то счётчик станет = 1, во 2-ой раз его значение возьмётся из контекста и увеличится на 1-цу и т.д., в итоге мы получим в самый последний раз общее количество вызовов сервлета. Меня волнует вопрос: есть ли синхранизация доступа к сервлету, т.е. не будет так если, допустим, одновременно 2-а юзера обращаются к сервлету, берут из его контекста значение счётчика и оба одновременно пытаются увеличить это значение, то оно увеличится только один раз, а не два? Ставит ли одновременно пришедших юзеров Томкэт в очередь на ресурс контекста? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2005, 18:52 |
|
||
|
Синхронизация доступа к сервлету в Томкэте
|
|||
|---|---|---|---|
|
#18+
храни счетчик как private static сервлета и при изменении делай Код: plaintext 1. 2. 3. The Bat + My Gate Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2005, 19:14 |
|
||
|
Синхронизация доступа к сервлету в Томкэте
|
|||
|---|---|---|---|
|
#18+
Это понятно, что так можно сделать, но интересно именно как Томкэт с контекстом сервлета работает. Синхронизирует ли он многопользовательский доступ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2005, 20:31 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=764&tid=2150750]: |
0ms |
get settings: |
5ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 348ms |

| 0 / 0 |
