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 » |