crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в (Qt 3.3.3) Контейнеры и многопоточность
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Алексей1153 Дата 19.7.2010, 18:00
  Достаточно, но работать будет, наверное, медленнее - он для межпроцессорных синхронизаций предназначен
Николай Дата 19.7.2010, 17:56
  Не могу понять, а использование только мьютекса не достаточно?
Алексей1153 Дата 12.7.2010, 15:11
  Наверное, имеются в виду QReadLocker и QWriteLocker

Если создать объект этого класса с указанием объекта синхронизации, то lock вызывается сразу, а unlock обязательно вызовется автоматом по выходу из области видимости QReadLocker или QWriteLocker (в деструкторах оных).
DEADHUNT Дата 12.7.2010, 15:05
  http://www.boost.org/doc/libs/1_43_0/doc/h...ocks.lock_guard
Николай Дата 12.7.2010, 13:39
 
Цитата(DEADHUNT @ 11.7.2010, 20:50) *
используй мьютексы и lock guard`s


А можно поподробней о lock guard`s
Николай Дата 12.7.2010, 13:38
 
Цитата(DEADHUNT @ 11.7.2010, 20:50) *
используй мьютексы и lock guard`s


Litkevich Yuriy Дата 11.7.2010, 20:54
  Николай, если речь идёт о предыдущей мажорной версии (Qt 3), то указывайте это и в теле сообщения и в заголовке. Т.к. немного пользователей её знает и это позволит сократить ошибочные сообщения
DEADHUNT Дата 11.7.2010, 20:50
  используй мьютексы и lock guard`s
Николай Дата 11.7.2010, 20:05
  1. Можно ли использовать контейнерные классы (QMap, QValueVector, QValueList) при многопоточном программировании для обмена данными между потоками?

2. Если возможно использовать, то достаточно ли все операции с разделяемым контейнером обвернуть мьютексом? Или его ещё нужно объявлять как volitale? Или ещё что-то?

3. Если для второго потока сделать копию контейнера первого потока через QDeepCopy, позволит ли это безопасно работать с этими контейнерами в двух разных потоках?

4. Если в том же QValueList использовать объекты типа какой-то структуры, где один из элементов этой структуры является QString, то при копировании QValueList используя QDeepCopy, можно ли будет безопасно работать с этими контейнерами в двух разных потоках? Или нужно копировать по элементно и QString переписывать через QDeepCopy.

Использую Qt 3.3.3 соответственно, хотел бы получить ответы для это версии.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 14:17