Threads

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

KIAN

#1
вобщем все просто. есть 2 треда, один выполнят основную работу второй, эту работу иллюстрирует. по отдельности работают идеально. но вместе??? возникает странность: (передача параметров через глобальные переменные) портятся те параметры которые которые идут только 1 треду(имя открываемого файла)
ЕСТЬ ИДЕИ как от этого избавится?
 
B

Barmutik

#2
Не использовать глобальные переменные для передачи параметров!
 
N

nonentity

#3
почитайте инфу для синхронизации потоков. не знаю, на чем вы пишите, но если на семействе Си, то есть такие средства синхронизации, как критическая секция, мьютекс, монитор. синхронизировать можно также и на основе событий. все это делается, в принципе, довольно просто. если нужна инфа, пиши на ales-cvik@mail.ru или звони по мирке на Alesь
 
K

KmeT

#4
имхо, критическая секция, мьютекс, события это все же объекты винды, а не конкретного языка.

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

А вообще очень даже согласен с Barmutik. Глобальные пременные в многопоточном приложении это такой гемор
 
G

Guest

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

volatile - это ключевое слово языка с++ и к MSVC не имеет отношения. Объявление переменных volatile в общем случае не поможет решить проблемы связанные с многопоточностью.
 
G

Guest_shal_*

#6
мутексы, крит. секции и т.п. доступны не только на вин32, но и на большинстве остальных платформ.
 
Статус
Закрыто для дальнейших ответов.