@Matweytt

Нуждается ли Qvector в mutex?

Есть класс UDP в нем определен вектор(играет роль буфера) так же определен QUdpsocket который привязан к порту и при каждом сигнале вызывает функцию чтения данных с сокета с последующей записью в вектор, еще есть пару функция по получению данных с вектора.
Суть вопроса в том что я тестировал и если вектор заносятся данные с сокета и в тоже время другой функцией я получаю данные с вектора ошибки не происходит. Надо ли перестраховываться мьютексом?
Или какую архитектуру сделать другую если на сокет посылается огромное количество данных и их без буфера не обработать в реал тайм))?
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ответы на вопрос 1
IGHOR
@IGHOR
Qt/C++ DEV/CTO
Любой наследник QObject не является потоко безопасным.
Операции с сокетами с помощью наследников QObject из разных потоков не безопасны даже с блокировками. Чтобы использовать как либо дескриптор сокета в разных потоках их надо отцеплять от управляющего наследника QObject.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Movicom Москва
от 90 000 до 140 000 ₽
MSP360 Санкт-Петербург
от 80 000 до 130 000 ₽
Speech Analytics Москва
от 150 000 до 200 000 ₽