У мене є програма, яка породжує теми (~ 5-150), які виконують купу завдань. Спочатку я використовував те, FixedThreadPool
тому що подібне запитання припускало, що вони краще підходять для більш тривалих завдань, і з моїх дуже обмежених знань багатопотокової роботи я вважав середню тривалість життя ниток (кілька хвилин) " довго прожили ".
Однак я нещодавно додав можливість нерестувати додаткові нитки, і це робить мене вище встановленого я межі потоку. У цьому випадку було б краще вгадати та збільшити кількість потоків, які я можу дозволити, або перейти на CachedThreadPool
так, щоб у мене не було марних потоків?
Спробувавши їх обох попередньо, схоже , немає різниці, тому я схильний їхати з тим, CachedThreadPool
щоб уникнути відходів. Однак чи означає тривалість життя ниток означає, що я повинен замість цього обрати FixedThreadPool
і просто мати справу з невикористаними нитками? Це запитання робить таке, що ці зайві теми не витрачаються даремно, але я вдячний за уточнення.