Russian Qt Forum
Ноябрь 02, 2024, 06:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Многопоточная запись/чтение implicitly-shared классов  (Прочитано 9452 раз)
andrew.k
Гость
« Ответ #15 : Октябрь 31, 2011, 13:45 »

Код
C++ (Qt)
QByteArray &QByteArray::operator=(const QByteArray & other)
{
   other.d->ref.ref();
   if (!d->ref.deref())
       qFree(d);
   d = other.d;
   return *this;
}
 
Конечно d = other.d выполнится атомарно,
Так мы же и так находимся внутри operator=, который должен выполнится атомарно?
Или атомарно выполняется только operator= внутри другого operator=? )
Записан
Akon
Гость
« Ответ #16 : Октябрь 31, 2011, 14:25 »

Цитировать
Тогда, что получается по теме? я не очень понимаю.
Нужно использовать мютексы при доступе к QByteArray? Потому что без них ерунда какая-то получается.
Мыль ТС я не очень понял. Точнее приведенный там код.
Для данного юзкейса (simultaneously reading/writing) сериализованный доступ (мьютексы) один из вариантов.
Кто такой ТС?

Цитировать
Получается другой поток в принципе не увидит изменений сделанных другим потоком.
Нет, увидит.
Записан
andrew.k
Гость
« Ответ #17 : Октябрь 31, 2011, 15:10 »

ТС - топик стартер. Тот, кто начал тему.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.144 секунд. Запросов: 21.