Boost named_semaphore примеры?
4 Pietro [2011-03-08 13:28:00]
Я не смог найти хороший пример, показывающий, как использовать boost:: interprocess:: named_semaphore (даже на веб-сайте Boost).
Я мог видеть что-то о interprocess_semaphore, но они кажутся совсем другими, и я не знаю, относится ли то, что показано для одного к другому.
Может ли кто-нибудь дать мне некоторые ссылки на такие примеры/учебники/документацию?
Спасибо.
c++ boost semaphore interprocess
1 ответ
2 Appleman1234 [2012-02-19 06:11:00]
Основное различие между interprocess_semaphore и named_semaphore заключается в том, что interprocess_semaphore используется совместно с общей памятью, где named_semaphore не нужно строить (используя конструкцию) или хранить в общей памяти как он ссылается на имя вместо анонимного.
Именованные методы синхронизации используют разные объекты для доступа к одному и тому же ресурсу, но используют один и тот же ресурс, где методы анонимной синхронизации должны совместно использовать один и тот же объект в shared_memory или какой-либо другой механизм для доступа к одному и тому же ресурсу.
Это означает, что named_semaphore имеет 3 конструктора, которые открывают или создают ссылочный метод синхронизации по сравнению с interprocess_semaphore, который имеет только 1 конструктор.
Оба типа семафора реализуют post, wait, try_wait и timed_wait, как ожидалось.
Дополнительная информация доступна здесь и здесь.
Один пример использования named_semaphore доступен здесь