Mam program, który generuje wątki (~ 5-150), które wykonują kilka zadań. Początkowo użyłem a, FixedThreadPool
ponieważ to podobne pytanie sugerowało, że lepiej nadają się do dłuższych zadań, a przy mojej bardzo ograniczonej wiedzy na temat wielowątkowości, uznałem średni czas życia wątków (kilka minut) za „ długi czas ”.
Jednak ostatnio dodałem możliwość tworzenia dodatkowych wątków i dzięki temu przekraczam ustawiony przeze mnie limit wątków. Czy w takim przypadku lepiej byłoby zgadnąć i zwiększyć liczbę wątków, na które mogę zezwolić, czy przełączyć się na CachedThreadPool
tak, aby nie było zmarnowanych wątków?
Wypróbowując oba na wstępie, nie wydaje się, żeby było różnica, więc jestem skłonny iść z nimi CachedThreadPool
tylko po to, aby uniknąć marnotrawstwa. Jednak czy żywotność nici oznacza, że powinienem zamiast tego FixedThreadPool
wybrać i zająć się nieużywanymi wątkami? To pytanie sprawia, że wydaje się, że te dodatkowe wątki nie są zmarnowane, ale byłbym wdzięczny za wyjaśnienie.