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

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

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

23 ответов

7 просмотров

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

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)

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

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

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта