Wielowątkowość - wskazanie odpowiednich mechanizmów

0

Witam,
dopiero zgłębiam temat wielowątkowości w C++ (standard C++11).
Wiem, bo już udało mi się to zrobić, jest możliwość, by utworzyć wiele wątków, które będą wykonywać pewne zadania a później będą na siebie czekać (metoda join()).

Zastanawiam się jednak czy jest możliwe by:

  1. Główny wątek utworzył 4 inne wątki, które będą się z nim później komunikować w taki sposób, że będą przetwarzać swój zestaw danych
  2. gdy przetworzą dane wyślą o tym informację do głównego wątku, który załaduje kolejne dane
  3. gdy drugi wątek zgłosi się w tym samym czasie po kolejne dane główny wątek najpierw załaduje dane jednego wątku a później inne dane do kolejnego wątku.
  4. wszystko będzie się wykonywać w pętli while do czasu, gdy dane do przetworzenia się nie skończą
  5. gdy skończą się dane główny wątek "zamknie" pozostałe wątki.

Teraz pytanie jakie mechanizmy powinienem w takim wypadku poznać by to wykonać?
Z góry dzięki za pomoc.

0

To co opisujesz to typowy threadpool.
Do wykorzystania - http://www.cplusplus.com/reference/multithreading/

0
_13th_Dragon napisał(a):

To co opisujesz to typowy threadpool.
Do wykorzystania - http://www.cplusplus.com/reference/multithreading/

Czy dobrze rozumie, że tutaj wystarczy tylko zmienna(e) typu atomic_bool? Czyli żadne mutex-y czy inne mechanizmy nie będą tu potrzebne?

0

Teoretycznie Mutex też jest oparty o atomic<> więc generalnie to można powiedzieć że wystarczy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1