Комментарии 6
Очень интересная штука, есть информация о том как это работает в ECP-конфигурации?
0
Из описанного я не понял в чем преимущества семафора от просто $INCREMENT? Особенно в свете того, что для хранения остальной информации используются чистые глобали, а не хранимые классы.
Мы с таким же успехом можем инкрементировать глобаль ^Semaphor(Key) при логине и декрементировать при логауте.
Мы с таким же успехом можем инкрементировать глобаль ^Semaphor(Key) при логине и декрементировать при логауте.
0
Простой инкремент какой-то глобальной переменной без дополнительных телодвижений не дает возможности ограничить доступ к какому-то ресурсу. Вернее инкремент его вообще никак не ограничивает, он просто увеличивает/уменьшает значение переменной. С его помощью мы можем получить «реальное» значение какой-то переменной в результате работы с ней нескольких процессов. Но мы не можем поставить процессы в очередь и обрабатывать их запросы только после того, как уже работающие процессы завершатся.
В данном конкретном примере мы конечно можем
В данном конкретном примере мы конечно можем
инкрементировать глобаль ^Semaphor(Key) при логине и декрементировать при логаутено это нам не даст возможности ограничить доступ только 10 людьми одновременно и не поставит 11 (и так далее) человека в список ожидания.
+1
Ok. То есть тут мы имеем еще дополнительный LOCK.
ИМХО, слишком много кода написано для демонстрации, что несколько запутывает.
ИМХО, слишком много кода написано для демонстрации, что несколько запутывает.
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Семафоры, или как разруливать доступ к ресурсам в DBMS Caché