Wielowątkowość - wskazanie odpowiednich mechanizmów

Odpowiedz Nowy wątek
2014-12-18 02:15
Świetny Mleczarz
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.

Pozostało 580 znaków

2014-12-18 02:39
0

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


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2014-12-18 03:16
Biały Samiec
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?

Pozostało 580 znaków

2014-12-18 04:39
0

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


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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