Могут ли накладные расходы на rwlock быть выше, чем накладные расходы на mutex?

#linux #multithreading #pthreads #mutex #rwlock

#linux #многопоточность #pthreads #мьютекс #rwlock

Вопрос:

Я реализовал sorted linked list в виде двух версий. Первый использует single mutex для всего списка, а второй использует single rwlock для всего списка.

Я выполнил половину операций as Member , а другая половина состояла из операций Insert(0.25) и Delete(0.25) . Я сопоставил время с несколькими потоками, и в этом случае ожидалось, что время для rwlock было выше, чем mutex .

Как это может произойти? Когда количество операций с членами превышает 90%, rwlocks все было лучше, как и ожидалось.

Комментарии:

1. Ваша проблема относится к другому месту во вселенной SO. Выберите свою планету здесь . При переносе … опубликуйте также некоторый минимальный код в качестве тестового примера.

2. «Могут ли накладные расходы rwlock быть выше, чем накладные расходы mutex?» — Да, может. rwlock реализует более сложные ограничения, чем простые mutex , поэтому он может потреблять больше памяти. Не уверен, что такое «Я выполняю половину операций как Member «, но вставка и удаление элементов из списка являются операциями мутации, и они выполняются исключительно как с mutex , так и с rwlock . Почему вы ожидаете rwlock , что в этом случае вы покажете лучшие результаты?

3. @Tsyvarev не могли бы вы, пожалуйста, ознакомиться с сюжетами здесь и объяснить ситуацию.

4. Хм, я не уверен, почему первый комментатор предлагает задать вопрос на другом сайте Stack Exchange. Насколько я понимаю, вопрос определенно относится к программированию и относится к Stack Overflow. Вы предлагаете изучить графики, но вы все еще не описываете, что означают «операции как Member «. Пожалуйста, обновите свой вопрос более подробной информацией.

5. Member означает поиск в списке заданного целого числа путем обхода списка, начиная с первого узла. Операции Delete и Insert выполняют тот же обход и удаляют узел, если он найден, или вставляют новый узел в правильное положение в отсортированном списке.