przekazanie zmiennej do innego wątku
Ostatnio zmodyfikowano 2013-02-05 11:27
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?  | 
 | 
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  | 
 | 
pekfos  | 
» 2013-02-04 19:19:24 Zmienne globalne.  | 
 | 
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).  | 
 | 
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++.  | 
 | 
|  « 1 »  |