170 похожих чатов

Что предпочтительнее использовать: 1) std::lock_guard<std::mutex> guard(myMutex); ... 2) myMutex.lock(); ... myMutex.unlock(); Как думаете?

5 ответов

19 просмотров

Гварды

однозначно 1 - а что если ты забудешь сделать анлок, а если там мьютекс рекурсивный или особо хитрый?

А вот что если между lock и unlock вылетит исключение? В этом случае примитив синхронизации (даже не обязательно мьютекс) останется захваченным навсегда

Georgy Firsov
А вот что если между lock и unlock вылетит исключе...

По меньшей мере придётся его перехватывать и отпускать мьютекс вручную

Похожие вопросы

Обсуждают сегодня

У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
Всем привет. Сейчас я изучаю erlang по книге Erlang and OTP in action. Дошел до главы где реализуется первый gen server на примере tcp rpc сервера. Меня очень сильно смутил ко...
Freezing Death
10
что за асемблер кста?
Shvabrikk Nya
19
Добрый день! Пробую отловить исключение EConvertError: function _TryTextToDouble(var DoubleVar: Extended; Text: String): Boolean; begin try DoubleVar := StrToFloat...
Kirill Filippenok
19
embassy это топ фреймворк для эмбеддед на данный момент?
AS Sarb
23
всем привет. реально ли понять чем в процессе занята память? delphi/linux, процесс свой
Handatros
12
Подскажите... Есть ли название у способа разработки кода, в котором: сперва пишут минимальную рабочую структуру: Напр. ввод, обработка, вывод, контроль. Потом эту структуру д...
Budemposmotret
6
В дизассемблере вижу, что строки пихают в регистры через lea, почему так, а не через mov?
Oleg
8
Ребята, я 3 дня как вкатился в ардуино Думал на прогрессивном молодом языке Rust попилить что-нибудь А как-то грустно с библиотеками оказалось. Не подскажете почему так? Если...
AS Sarb
18
А где @Grinyaha уважаемый пропал?
Am Ambrion
14
Карта сайта