Threading / Синхронизация - PullRequest
       4

Threading / Синхронизация

1 голос
/ 22 апреля 2009

Какова реальная разница Концептуально и точки зрения реализации между

Семофор, Мьютекс, Монитор?

Мы говорим, что семофоры являются счетчиком распределения ресурсов ... Хорошо, я понимаю это.

Для Мьютекса мы говорим, что мьютекс - это бинарный семофор ... Черт возьми, что это ???

Монитор защищает точку входа для объектов ... то есть только один поток может получить ее и может запустить одну из ее защищенных точек входа ??? Тогда что такое мьютекс для ??

1 Ответ

1 голос
/ 22 апреля 2009

Семафоры являются механизмом блокировки, iirc они могут быть концептуально сконфигурированы, чтобы разрешить множественный доступ к объекту; например Доступ к трем за раз, четырем за раз и т. Д.

Мьютекс является частным случаем семафора для обеспечения взаимного исключения, т.е. только один может получить доступ к защищенному ресурсу в любой момент времени.

Важно отметить, что ни семафор, ни мьютекс не обеспечивают строгого упорядочения при ожидании доступа к общему ресурсу. Когда ресурс становится доступным, некоторый ожидающий поток получит доступ, но не будет сделано никаких гарантий относительно того, какой поток будет. По статистике, в конечном итоге все потоки будут (должны) получать доступ.

Монитор обеспечивает приоритет для ожидающих потоков / процессов, помещая их в очередь в определенном порядке, не обязательно так, как они поступают. Операционная система является примером монитора - обеспечение того, что один процесс имеет ЦП в любой момент времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...