Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как убереч(ь) данные от потоков, Поток портит данные 
:(
    Опции темы
DenDen
Дата 5.4.2004, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 25.3.2004

Репутация: нет
Всего: нет



Привет!
Вчера долго-долго-......-долго-.... пытался отыскать ошибку в своей проге. Отыскал, оказалось один из потоков портит данные, к которым доступа иметь вообще не может(Отметим, что в порядке паранойии я уже давно забыл о существовании +,-,= итд и пользуюсь только разными Interlocked..., все переменные volatile, контекст сбрасывется 2-жды 1 раз регулярно, другой раз мной--все естессвенно тормозит).Устранил я ошибку довольно просто: распихав все подозрительные и не очень- и совсем не- данные по разным кучам и эти кучи заперев.
Посему внимание вопрос. Я уверен, что у большинства из Вас потоки тоже много чего попортили и очень бы хотелось Услышать способы избавления от этой порчи.


PM MAIL   Вверх
mr.DUDA
Дата 5.4.2004, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Цитата
Привет!
Вчера долго-долго-......-долго-.... пытался отыскать ошибку в своей проге. Отыскал, оказалось один из потоков портит данные, к которым доступа иметь вообще не может(Отметим, что в порядке паранойии я уже давно забыл о существовании +,-,= итд и пользуюсь только разными Interlocked..., все переменные volatile, контекст сбрасывется 2-жды 1 раз регулярно, другой раз мной--все естессвенно тормозит).Устранил я ошибку довольно просто: распихав все подозрительные и не очень- и совсем не- данные по разным кучам и эти кучи заперев.
Посему внимание вопрос. Я уверен, что у большинства из Вас потоки тоже много чего попортили и очень бы хотелось Услышать способы избавления от этой порчи.

Можно и не распихивать данные по кучам, а устроить обычный синхронизированный доступ к ним... Есть же критические секции, а если не нравятся - спасёт проверенная связка "какой-нибудь объект синхронизации" + WaitForSingle/MultipleObject(s)


--------------------
user posted image
PM MAIL WWW   Вверх
DenDen
Дата 5.4.2004, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 25.3.2004

Репутация: нет
Всего: нет



Thanks.Дело в том, что ставить Синхронизаторы или секции на все куски данных весьма накладно(Переход ядро-пользователь 1000 тактов, в случае секции конечно лучше), но потом очень легко запутаться какой объект за что отвечает. У меня поток портил те данные, о существоаниии которых и знать то не должен. Я, в принципе задал, вопрос с неким подткстом. Многие в детстве/отрочестве/юнности разбирали ядро и видели, что Intelocked штуки находятся в обкладках из недокуменнтированных функций. Проследить их до конца я не смог. Понимяю, что сейчас получу по шапке от Модератора, но если кто-то из вас разобрался, что это за функции такие и может сказать их нормальные имена(если есть), то скажите PLS.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0646 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.