Pracuje ostatnio nad troszkę większym projektem i głowię się nad problemami związanymi z wielowątkowością. Piszę w Visual Studio w C++ WinApi only konsola Mam wątek główny i inny który pobiera mi dane z pewnych peryferii i zachodzi mi głowę pewna rzecz, mianowicie ona działa ale nie jestem pewny czy poprawnie jest to zrobione, a sam program musi być stabilny i nie może się wieszać.
Działanie wygląda tak:
1. Wątek poboczny pobiera dane, po zebraniu wszystkich danych wywołuje poprzez wskaźnik moją funkcje, która jako argumenty dostaje te dane i je analizuje.
2. W tej mojej funkcji wywołuje inne funkcje i korzystam z kilku struktur globalnych (wiem że globale nie są najlepsze, powoli zaczynam się do tego dostosowywać i je ograniczać )
3. W wątku głównym programu również korzystam z tych funkcji i struktur.
Jeśli wywołuje moją funkcję poprzez wskaźnik w wątku, to czy możliwe jest, w głównej pętli programu zostanie wywołana w tym samym czasie ta sama funkcja bądź wykorzystana ta sama struktura bądź zmienna ? Puki co program się nie wysypuje i nie ma błędów z dostępem do pamięci, tylko czy aby na pewno taki sposób jest dobry ?
Będę wdzięczny za każdą podpowiedź.
Pozdrawiam