@Matweytt

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

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

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

Войти через центр авторизации
Похожие вопросы