Zastanawiasz się, jaki jest najlepszy sposób, aby zdecydować, kiedy przerwać tworzenie nowych wątków na maszynie z pojedynczym rdzeniem, która uruchamia ten sam program wiele razy jako wątek?Optymalizacja maksymalnej liczby wątków uruchomionych na procesorze
Wątki pobierają zawartość internetową i przetwarzają, co oznacza, że obciążenie każdego wątku nie jest stałe aż do zakończenia wątku.
Myślę, że mam wątek, który monitoruje obciążenie procesora/pamięci RAM i przestaje tworzyć wątki, jeśli obciążenie osiągnie określony próg, ale także przestanie tworzyć wątki po osiągnięciu określonej liczby wątków, aby upewnić się, że Procesor nie jest przeciążany.
Jakie są opinie na temat dostępnych technik, aby to osiągnąć?
Dziękujemy, Vladimir
Myślę, że jesteś na dobrej drodze. Jedną z rzeczy do rozważenia jest użycie NIO i selektorów, więc twoje wątki są zawsze zajęte, a nie zawsze czekają na IO.Trudno będzie zmaksymalizować przepustowość, nie licząc szczytów i dolin. – Gray
Tam, Gray pobił mnie do tego :) Z blokującym IO będziesz potrzebował śmiesznie dużej ilości wątków, które będą marnować pamięć RAM i robiąc w zasadzie tylko czekać. –
Możesz nie chcieć tworzyć nici samodzielnie. Użyj 'ExecutorService', która ponownie wykorzystuje wątki dla zadań' Runnable' lub 'Callable' i redukuje narzut tworzenia niszczących wątków. –