Обычно я запускаю программы через Eclipse, которые запускают сотни или тысячи потоков, и сегодня я пытаюсь провести сравнительный анализ. Я заметил, что где-то около 100 все еще активных потоков после выполнения некоторых тестов, поэтому я решил перезапустить Eclipse, предполагая, что потоки остались от одной из моих программ, которая не закрылась должным образом или что-то в этом роде. Однако, когда я перезапускаю Eclipse, он имеет более 100 потоков (при просмотре с помощью htop в Centos OS 7), поэтому кажется, что эти потоки связаны с Eclipse, а не с моими программами. Это нормально? Похоже, что очень большое количество потоков сидит там и ничего не делает.
Они не занимают процессорное время, и их использование памяти одинаково для всех, поэтому я предполагаю, что на самом деле это использование родительского потока. Отмечено в каком столбце? В столбце S они отмечены буквой S.
Если это так, то это означает, что эти потоки спят и не занимают циклы ЦП. Не похоже, что это большая проблема, если вы не сталкиваетесь с ограничением потока в пользовательском пространстве.
Вы, вероятно, правы, но кажется довольно нелепым, что Eclipse порождает 100, казалось бы, бесполезных потоков.
Собирались ли вы смотреть на их имена и стопки, или списываете их как бесполезные?
У всех них одно и то же имя (по крайней мере, та часть, которая находится на экране - они настолько длинные, что исчезают с экрана, и я не знаю, как захватить остальное). Я не совсем понимаю, что вы подразумеваете под стеками в этом контексте.




Активно ли работают потоки? Они отмечены буквой "Z"? Занимают ли они иным образом системные ресурсы?