Потокобезопасность сокетного обмена, проблема с пониманием QMutex |
Здравствуйте, гость ( Вход | Регистрация )
Потокобезопасность сокетного обмена, проблема с пониманием QMutex |
mezmay |
3.2.2011, 11:20
Сообщение
#1
|
|||
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Есть класс - сокет-клиент:
файл cmysocketclient.h
файл cmysocketclient.cpp:
Наследую от этого класса еще один класс - класс управления устройством, называется CBaseMupo. В нем просто вызываю функции connectToServer, disconnect, send, receive. В двух разных потоках создаю экземляры класса CBaseMupo. Работаю с обоими экземплярами в обоих потоках одновременно (оба экземпляра подключаются к одному и тому же ip-адресу и порту). В результате получаю ошибки обмена (приема\получения данных). Вопрос - почему? Ведь мой класс CMySocketClient вроде бы потокобезопасный? Или дело в том что я использую разные экземпляры класса? Получается что QMutex обеспечивает потокобезопасность только если из разных потоков обращаться к ОДНОМУ объекту, а в противном случае атомарность не обеспечивается?...
|
|||
|
||||
mezmay |
3.2.2011, 11:50
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Дополнение: обмен глючит даже если объект одного потока обращается к одному IP и порту, а объект второго потока - к другим IP и порту...
|
|
|
Текстовая версия | Сейчас: 29.4.2024, 1:39 |