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

Народ, а правильно я понимаю, что если, я использую vector

для кольцевого буфера, то чтоб писать в него из разных потоков, мне нужно защитить только индексы записи и чтения/удаления из буфера?

23 ответов

9 просмотров

Какие индексы?

ProIt-same Автор вопроса
Danya🔥
Какие индексы?

индекс текущей позиции в буфере, для записи и индекс для чтения/удаления из буфера который не должен быть равен индексу для записи

ProIt-same Автор вопроса
Danya🔥
Как ты собрался защищать индекс?

ну... наверное мьютексами как нибудь через методы get set

ProIt same
ну... наверное мьютексами как нибудь через методы ...

Ты про значению собираешься отдавать элементы?

Неправильно

ProIt-same Автор вопроса
ProIt-same Автор вопроса
Ilya Zviagin
Неправильно

а неправильность в чём заключается? )

ProIt same
отдавать это читать?

Давай уже код показывай, и там видно будет.

ProIt same
а неправильность в чём заключается? )

Надо защищать весь вектор от записи и от чтения одновременно с записью

ProIt same
а неправильность в чём заключается? )

Потом что-то непонятно как это вектор и вдруг кольцевой буфер, в общем, если поставить мьютекс на весь вектор и блокироваться при записи в любое место и при чтении из любого места , будет точно ок

Danya🔥
Какие индексы?

Ты что-нибудь понял?

ProIt-same Автор вопроса
Ilya Zviagin
Надо защищать весь вектор от записи и от чтения од...

а разве имеет смысл защищать вектор, когда размер постоянный и хранит он указатели, если мы не обращаемся к нему из разных потоков к одному и тому же элементу?

ProIt same
а разве имеет смысл защищать вектор, когда размер ...

Ну у тебя кроме вектора ещё два индекса-указателя в них. Не только вектор надо защищать.

ProIt same
какие индексы? index1, index2?

Ну указатель записи и чтения.

ProIt-same Автор вопроса
Ilya Zviagin
Ну указатель записи и чтения.

ну в смысле те что я отдельно создал?

ProIt-same Автор вопроса
Ilya Zviagin
Да

а про защиту вектора, вопрос остался, если эти индексы будут правильно работать, можно оставить этот вектор без защиты?

ProIt-same Автор вопроса
Ilya Zviagin
выше

спасибо! )

ProIt same
спасибо! )

Главный принцип: Защищай ВСЁ, и ОДНИМ мьютексом. Также, используй lock guard-ы (есть в STD)

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта