Witam,
Mam taki problem.
Chciałbym w aplikacji określić liczbę wątków np. 3.
Mam około powiedzmy 30 zadań, które mogą być wykonywane niezależnie od siebie, ale zanim program przejdzie dalej wszystkie muszą zostać wykonane. Liczba wątków jest dość mała, gdyż każde zadanie potrzebuje sporej ilości pamięci RAM. Gdybym uruchomił 30 na raz to program spowolniłby cały komputer, gdyż na pewno zabrakłoby pamięci...
Zrobiłem już coś takiego, że tworzę 3 wątki, dodaje 3 pierwsze zadania ale następnie czekam (z metodą .join()) aż te trzy się skończą i dopiero uruchamiam kolejne trzy.
Moje pytanie jest. Czy w Javie można zrobić coś takiego, że uruchamiam 3 zadania na 3 wątkach a gdy jedno z zadań zakończy się automatycznie przydzielam następne zadanie tak, aby zawsze pracowała określona liczba wątków? Chodzi po prostu oto, aby maksymalnie wykorzystać określoną liczbę wątków.
Drugie pytanie czy w takim wypadku nie lepiej wykorzystać programowanie równoległe i rozdzielić zadania na poszczególne procesory? Czy w takim razie w Javie można wtedy automatycznie przydzielać zadania do procesorów?
Z góry dzięki za pomoc!
Pozdrawiam,
adalgrim