Мне интересно, как дорого стоит много потоков в состоянии ожидания в java 1.6 x64.
Чтобы быть более конкретным, я пишу приложение, которое работает на многих компьютерах и отправляет/получает данные от одного к другому. Мне удобнее иметь отдельный поток для каждой подключенной машины и задачи, например: 1) отправка данных, 2) получение данных, 3) восстановление соединения при его удалении. Итак, учитывая, что в кластере есть N узлов, каждая машина будет иметь 3 потока для каждого из N-1 соседей. Как правило, будет 12 машин, которые достигают 33 коммуникационных потоков.
Большинство из этих потоков будут спать большую часть времени, поэтому для целей оптимизации я мог бы сократить количество потоков и дать больше работы каждому из них. Например, как. восстановление соединения связано с получением потока. Или отправка на все подключенные машины выполняется одиночным потоком.
Итак, есть ли значительное влияние на много спальных нитей?