Fork/Join i zadania nie rekurencyjne

0

Mam kod produkujący trzy zestawy danych.
Zestawy są niezależne od siebie. Każdy zestaw wymaga dodatkowej obróbki(proces ten jest długotrwały).
Pomyslałem ze można by "zaprząc" więcej rdzeni(procesora) do roboty i wykonywać równolegle obróbkę wszystkich zestawów danych.
Chce użyć Fork/Join jednak we wszystkich przykładach wykorzystania tego frameworku zadania są rekurencyjne natomiast moja obróbka nie może odbywać sie w ten sposób.
Czy użycie tego frameworku przyspieszy wykonywanie sie tych elementów programu mimo ze nie są rekurencyjne? Czy może lepiej wykorzystać pulę wątków(jeden watek=jeden zestaw danych)?

//edit
Przeprowadzilem testy (podobnej obróbki) na zwyklych integerach ale zauwazylem ze w czasie gdy komputer chwile "myslał" intensywnie pracował tylko jeden(z czterech) z rdzeni mimo użycia Fork/Join. Nie wiem czy to anomalia czy framework nie sprawdza się bez rekurencji :(

0

Fork-join został stworzony z myślą o rekurencji. Więc nie jest do dobre wyjście. Lepiej pula wątków (Executor ?) + np. Condition albo inne mechanizmy synchronizujące zakończenie.

0

Chcesz aby wszystkie te zadania obrókowe odbyły się równolegle, ale kontynuować chcesz dopiero, gdy wszystkie się ukończą, tak? Może w takim razie aktory?
http://stackoverflow.com/questions/3357332/which-actor-model-library-framework-for-java

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.