powered by simpleCommunicator - 2.0.27     © 2024 Programmizd 02
Map
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что под капотом у std::mutex
25 сообщений из 131, страница 1 из 6
Что под капотом у std::mutex
    #40106872
indigodye0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что под капотом у std::mutex ?
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40106873
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Загляни в соответствующий заголовок. Внезапно, там системный мутекс.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40106874
indigodye0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там я вижу pthread_mutex_t
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40106899
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЧиТД.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40106947
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
indigodye0
Что под капотом у std::mutex ?
Всё, что угодно - на усмотрение разработчиков компилятора.
Главное, чтобы мьютекс имел описанные в стандарте свойства.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40106950
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
indigodye0
Там я вижу pthread_mutex_t
В GNUC на Линуксе? Ну... Почему бы и нет?
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107016
А что у .shared_lock() под капотом - стоит ли его юзать для multiple read/single write?

что скажете про pthread_rwlock* - они только для C ?
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107034
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик,

shared lock, rwlock - это все под капотом имеет обычный мьютекс со счетчиком.
Имеет смысл только при наличии медленных ридеров которые блокируют по чтению надолго.
Если же ридеры быстрые и долго блокировку не держат, то имеет смысл использовать обычный мьютекс, т.к. у него меньше оверхед.
Но конечно надо замерять в каждом конкретном случае.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107091
Anatoly Moskovsky, а зачем вообще на чтение блокировать?
ну если там не неск.секунд запись, а просто кинул в память и всё...
в этот момент чтение опасно?
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107092
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
а зачем вообще на чтение блокировать?

Чтобы никто не писал пока читаешь.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107108
а как лучше блокировать, когда, например, в одном запросе пишут, а в другом читают?
1. заблокировать весь пишущий запрос
2. заблокировать в пишущем запросе все пишущие ф-и (т.е. вручную каждую отблочить)
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107113
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если читателей много а писателей мало или они редко делают операции - то можно попробовать
optimistic lock with timestamp. Я никогда не использовал это в С++. Только в Java.

Но если получится - то есть шанс сильно облегчить нагрузку на mutex заменив ее атомарными
операциями над timestamp.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107123
а там случайно нет такого инструмента, который можно 1 раз повесить на переменную, чтобы она автоматом блокировалась, когда в неё пишут?
Т.е. просто перечислить все переменные и пусть блочит их автоматом всегда, самым оптимистичным образом...
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107134
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю - нивелируется смысл мультипоточки. И кроме того старик Амдал топит за то чтобы
мы как можно меньше создавали таких мест в коде.

Кстати что в ней? Переменной? Счетчик? Можно атомик сделать. А если на этот счетчик смотрит
человек (для статистики) то зачем ему видеть каждое обновление? Пускай каждый поток аккумулирует
хотя-бы штук 10 итераций - потом сбрасывает изменения. Вобщем тут... с хитростью надо подойти.

Тогда и будет перформанс.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107137
переменные разные, от цифры до строки

mayton
Пускай каждый поток аккумулирует, хотя-бы штук 10 итераций, потом сбрасывает изменения.

а это как?
Поток просто выполнил свой запрос, запустил нужные ф-и, и отключился...
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107142
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
переменные разные, от цифры до строки

mayton
Пускай каждый поток аккумулирует, хотя-бы штук 10 итераций, потом сбрасывает изменения.

а это как?
Поток просто выполнил свой запрос, запустил нужные ф-и, и отключился...


А... ну здесь нет highload. Так что можешь спокойно мутксы использовать.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107145
ну запросов то может быть много в секунду...
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107147
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну... сколько? 10? 100?

Тут я думаю метрика будет такая. Как только все профилировщики показывают что все потоки ждут
этот mutex - вот тогда и наступает highload. А до этого - можно не беспокоиться.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107150
там может быть всплеск, вплоть до миллионов
можно же умышленно нагрузить запись
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107170
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик,

Давай макет сюда. С мутексом.

Чорт с тобой. Уламал
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107171
я ещё размышляю о том mutex или не mutex...
ну есть 2 направления: чтение и запись
в чтении ф-и для чтения
в записи ф-и для записи
их может быть много...
запросов может быть много...
за один запрос может быть затронуто несколько ф-й

вопрос в том, как блокировать:
бабушкин зайчик
1. заблокировать весь пишущий запрос
2. заблокировать в пишущем запросе все пишущие ф-и (т.е. вручную каждую отблочить)

и как быть с чтением во время записи?
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107176
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
и как быть с чтением во время записи?

Для того и блокируют, чтобы во время записи никто не мог читать.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107177
Dima T
бабушкин зайчик
и как быть с чтением во время записи?

Для того и блокируют, чтобы во время записи никто не мог читать.

это только mutex делает или любая блокировка?
разве нет раздельных блокировок на запись и чтение?
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107196
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
там может быть всплеск, вплоть до миллионов
можно же умышленно нагрузить запись
spin-lock на std::atomic.
...
Рейтинг: 0 / 0
Что под капотом у std::mutex
    #40107199
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не очень я понимаю ваших страданий ...
Если счётчик меняется "вне нашего контроля", то на него вешается volatile, чтобы компилятор не больно умничал.
Дальше есть два варианта:
1. Требуется "просто консистентное чтение";
2. Требуется, чтобы "счётчик не менялся ещё несколько операций после чтения".
Первое гарантируется аппаратурой, если переменная "не слишком велика". Найти сейчас неатомарный int возможно, но это - нетривиальная задача. Даже long, в основном - уже атомарный.
А второе из исходной постановки - как-то не очень просматривается.
И вот из этого когнитивного диссонанса "рождается секрет" вопрос: с чем боремся-то?
И второй вопрос из того же диссонанса: если вторая задача, то зачем узнавать подкапотные подробности стандартных вещей вопросами на форуме вместо чтения документации?

Или, всё-таки, профессионалы видят что-то такое, что недоступно понимаю тупых дилетантов?
...
Рейтинг: 0 / 0
25 сообщений из 131, страница 1 из 6
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что под капотом у std::mutex
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]