На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
Страницы: (2) 1 [2]  все  ( Перейти к последнему сообщению )  
> Мьютексы С++11, С++14, С++17 , Нужно разобраться - кто и что из себя представляет.
    На самом деле уверенность практически 100%. Для межпроцессной синхронизации нужны именованные объекты, для чего в std ничего не предусмотрено. С другой стороны, тебе ничто не мешает написать свои мьютексы, лишь бы их слопал std::lock_guard<>. Требования для этого довольно низки.
    Сообщение отредактировано: Qraizer -
      Цитата Qraizer @
      На самом деле уверенность практически 100%. Для межпроцессной синхронизации нужны именованные объекты, для чего в std ничего не предусмотрено. С другой стороны, тебе ничто не мешает написать свои мьютексы, тишь бы их слопал std::lock_guard<>. Требования для этого довольно низки.

      Я понял, спасибо за разъяснения. В принципе логично. Мне было принципиально услышать аргументы, а не просто "Вот так и все тут".
      Вопрос решен.
        Цитата Wound @
        Или лучше всегда юзать std::recursive_mutex, и не париться?
        Разница между std::mutex и std::recursive_mutex всего лишь в одном аспекте поведения: если нитка залочила объект, то в первом случае повторный захват ею этого же объекта приведёт к неопределённому поведению, тогда как во втором случае выполнение продолжится без любой дополнительной блокировки, однако отпустить объект нитка должно столько же раз, сколько захватывала, иначе он так и останется ею занятым. Это поведение строго согласуется и с критическими секциями, и с мьютексами из WinAPI. Первое же поведение ровно такое же, как у семафоров со счётчиком 1, если неопределённое поведение доопределить до дидлука, так что не удивлюсь, если std::mutex реализованы через семафоры.
          Я про именованые объекты позабыл просто, и действительно, мьютексов на всех не напасешься, Qraizer, ты навел меня на опрделенную мысль, за что тебе спасибо. Я понял что все std::mutex скорее всего быстрые, да я дебажил std::mutex, но тем не менее хотел понять как лочить объекты между процессами. В принципе логично, что это должен делать тот - кому это нужно. Вопрос исчерпан.
            Скрытый текст
            Цитата Wound @
            пусть даже бессознательно

            :good:
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0240 ]   [ 16 queries used ]   [ Generated: 18.04.24, 10:32 GMT ]