Threads

  • Автор темы Автор темы KIAN
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
K

KIAN

вобщем все просто. есть 2 треда, один выполнят основную работу второй, эту работу иллюстрирует. по отдельности работают идеально. но вместе??? возникает странность: (передача параметров через глобальные переменные) портятся те параметры которые которые идут только 1 треду(имя открываемого файла)
ЕСТЬ ИДЕИ как от этого избавится?
 
Не использовать глобальные переменные для передачи параметров!
 
почитайте инфу для синхронизации потоков. не знаю, на чем вы пишите, но если на семействе Си, то есть такие средства синхронизации, как критическая секция, мьютекс, монитор. синхронизировать можно также и на основе событий. все это делается, в принципе, довольно просто. если нужна инфа, пиши на ales-cvik@mail.ru или звони по мирке на Alesь
 
имхо, критическая секция, мьютекс, события это все же объекты винды, а не конкретного языка.

А в вашем случае если предача через глобальные пременые организована более и менее прямо, может помочь объявление пременных как не оптимизирующихся(мля криво выразился :(), для MVC это спецификатор volatile.

А вообще очень даже согласен с Barmutik. Глобальные пременные в многопоточном приложении это такой гемор
 
<!--QuoteBegin-KmeT+5:08:2005, 00:42 -->
<span class="vbquote">(KmeT @ 5:08:2005, 00:42 )</span><!--QuoteEBegin-->А в вашем случае если предача через глобальные пременые организована более и менее прямо, может помочь объявление пременных как не оптимизирующихся(мля криво выразился :(), для MVC это спецификатор volatile.[/quote]

volatile - это ключевое слово языка с++ и к MSVC не имеет отношения. Объявление переменных volatile в общем случае не поможет решить проблемы связанные с многопоточностью.
 
мутексы, крит. секции и т.п. доступны не только на вин32, но и на большинстве остальных платформ.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!