powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Потоки. Разделяемые переменные.
6 сообщений из 31, страница 2 из 2
Потоки. Разделяемые переменные.
    #39925359
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ознакомьтесь
YouTube Video
...
Рейтинг: 0 / 0
Потоки. Разделяемые переменные.
    #39925375
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA
Код: plaintext
1.
2.
3.
void DC::Write(MData md) {
		lock_guard<mutex> guard(mtx);
		MD = md;



Зачем тебе лишнее копирование md? Используй ссылку
Код: plaintext
1.
void DC::Write(MData& md)
...
Рейтинг: 0 / 0
Потоки. Разделяемые переменные.
    #39925434
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T

Зачем тебе лишнее копирование md? Используй ссылку
Код: plaintext
1.
void DC::Write(MData& md)

Там md определена в функциях, и ссылка исчезнет.)
Вот я думаю, стоит ли копировать структуры в поток (сейчас копирую) или читать напрямую по ссылке из защищенных мьютексами.
С одной стороны, возможны блокировки при чтении, с другой, данные обновляемые, и всегда актуальные.
...
Рейтинг: 0 / 0
Потоки. Разделяемые переменные.
    #39925463
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA,
А что тут думать, если в варианте с мьютексами медленнее чем копировать.
...
Рейтинг: 0 / 0
Потоки. Разделяемые переменные.
    #39925951
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA
Имеется несколько потоков-писателей. Каждый из них изменяет свои переменные и тут все нормально. Писатели уже пишут.
Имеется несколько потоков-читателей. Каждый из них имеет доступ и может читать любые переменные.

Я уже почитал инет. Имхо, здесь ничего не нужно и все проблемы с совместным доступом к памяти решаются на уровне железа. Так ли это?

Нет, не так. Если поток пишет в переменную (по условию названную своей), но эту же переменную читает второй (по условию читаем любую), то нужно синхронизироваться.
...
Рейтинг: 0 / 0
Потоки. Разделяемые переменные.
    #39925963
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну янужно синхронизироваться.

За исключением случаев когда переменная размером не превышает разрядность платформы
И читающему коду всё равно которое из значений он получит.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Потоки. Разделяемые переменные.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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