Mam program, który generuje wątki (~ 5-150), które wykonują kilka zadań. Początkowo użyłem a, FixedThreadPoolponieważ 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 CachedThreadPooltak, 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 CachedThreadPooltylko po to, aby uniknąć marnotrawstwa. Jednak czy żywotność nici oznacza, że powinienem zamiast tego FixedThreadPoolwybrać 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.