[Multithreading] Wykonywanie wątków
Ostatnio zmodyfikowano 2017-04-14 21:27
Kinexity Temat założony przez niniejszego użytkownika |
[Multithreading] Wykonywanie wątków » 2017-04-12 22:04:18 Witam wszystkich czytających ten post!
W moim programie chciałbym osiągnąć następujący efekt: wymaga on, by na przemian wykonywały się w wielu wątkach różne akcje w przybliżeniu zgodnie z poniższym schematem:
funkcja1[0] funkcja1[1] funkcja1[2] funkcja1[3] ----------------------------------------------- Synchronizacja ----------------------------------------------- funkcja2[0] funkcja2[1] funkcja2[2] funkcja2[3] ----------------------------------------------- Synchronizacja ----------------------------------------------- funkcja1[0] funkcja1[1] funkcja1[2] funkcja1[3] ----------------------------------------------- Synchronizacja ----------------------------------------------- funkcja2[0] funkcja2[1] funkcja2[2] funkcja2[3]
Pytanie: Jeżeli chciałbym umieści wewnątrz wątków pętle (by uniknąć ich ciągłego tworzenia i niszczenia), to czy istnieje funkcja pozwalająca na wstrzymanie pętli lub wątku w oczekiwaniu na zdarzenie (np. zmianę wartości zmiennej typu bool)?
Jeżeli wyraziłem problem w sposób niejasny to napiszcie. |
|
pekfos |
» 2017-04-13 00:49:40 A z jakiej biblioteki te wątki..? Najlepiej poczytaj dokumentację i dobierz sobie odpowiednie narzędzia. Zawsze jest coś do sterowania blokowaniem wątków. |
|
j23 |
» 2017-04-13 10:45:37 Odpowiedź: generalnie tak. |
|
Kinexity Temat założony przez niniejszego użytkownika |
» 2017-04-13 11:17:10 pefkos - korzystam ze standardowej <thread> j23 - jeżeli generalnie tak to czy mógłbym prosić o podzielenie się wiedzą? |
|
karambaHZP |
» 2017-04-13 11:56:23 |
|
jankowalski25 |
» 2017-04-13 12:24:38 |
|
j23 |
» 2017-04-13 13:57:36 @Kinexity, jeśli chodzi o <thread>, to masz np. condition_variable lub bardziej siermiężnie std::atomic (albo std::atomic_flag) + pętla z sleep_for.
|
|
Kinexity Temat założony przez niniejszego użytkownika |
» 2017-04-14 21:27:16 Dzięki wszystkim za pomoc. |
|
« 1 » |