Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

przekazanie zmiennej do innego wątku

Ostatnio zmodyfikowano 2013-02-05 11:27
Autor Wiadomość
dragranis
Temat założony przez niniejszego użytkownika
przekazanie zmiennej do innego wątku
» 2013-02-04 18:37:48
Witam,mam pewien problem. Do obsługi wątków używam biblioteki process.h. 
W funkcji main program się normalnie wykonuje a utworzony przeze mnie wątek co sekundę wykonuje swoją operację .Ma to wykonywać  aż zmienna w pętli osiągnie wartość 0. i w głównym programie mam instrukcję warunkową ,dzięki której po zakończeniu procesu program ma się wyłączyć.Jednakże program nie widzi zmiennej z pętli ,mimo iż jest ona globalna.W jaki sposób mogę przekazać tę zmienną do głównego procesu/innych procesów?
P-75710
Savail
» 2013-02-04 18:45:09
spróbuj użyć słowa kluczowego volatile przy tworzeniu zmiennej globalnej. A jeśli to nie pomoże i używasz funkcji _beginthread to trzeci parametr jest wskaźnikiem na dane dowolnego typu. Wewnątrz wątku odzyskujesz te dane zwykłym rzutowaniem
P-75711
pekfos
» 2013-02-04 19:19:24
Zmienne globalne.
P-75713
DejaVu
» 2013-02-04 21:30:53
Proces to nie to samo co wątek... komunikacja między procesami jest trudniejsza niż między wątkami. Wątki współdzielą pamięć procesu, podczas gdy procesy posiadają niezależne zarządzanie pamięcią (jak również i innymi zasobami).
P-75722
Monika90
» 2013-02-05 11:27:27
@Savail
Niestety volatile nie nadaje się do synchronizacji czy komunikacji między wątkami.
Raczej trzeba się zapoznać z czymś takim jak mutex, condition_variable, czy atomic_flag - od niedawna dostępne w stnadardzie C++.
P-75762
« 1 »
  Strona 1 z 1