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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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