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