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 доступен здесь