LINUX.ORG.RU

[java] Сервер и многопоточность

 


0

0

Имеется схема подобная: сервер слушает порт, как только пришло входящее соединение порождает для него поток. Внутри потока выполняется явное об null ение общекта, созданного через new Thread(), и далее Interrupt самого потока.

Вопрос: а корректно ли это? В профайлере явно видно о постоянно растущем колличестве Surviving generations

Больше тысячи соединений не потянет.

Лучше порождать не поток на соединение, а поток на информационный пакет. Тогда хоть 10 тысяч соединений, если они будут активны не более 1/10 времени каждое потянет.

KRoN73 ★★★★★
()

смотри в сторону apache mina & java nio

stave ★★★★★
()

Как бы это сказать. По сути само поединение к получению одного пакета и сводится. И никаких особых проблем с этим то врпнципе и нет. Меня больше интересует вопрос самих surviving generations, и насколько сборщик мусора такие потоки вычищает. Либо где-то надо их принудительно убивать финтом ушами?

Корректно ли, что я порождаю поток по принципе

new Session(serverSocket.accept(), someArgs);

т.е. не сохраняю "указатель?" на поток в надежде что gc его оперативно затрет?

Borman3000
() автор топика
Ответ на: комментарий от Borman3000

Дорогой лор - а помещение сокета в fifo стек и потоками его оттуда доставание - это колхоз?=))))

Borman3000
() автор топика
Ответ на: комментарий от Borman3000

посмотрите Selector, Channel, SocketChannel, начните с Selector'а.
Лишние потоки плодить не надо!

frozen83
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.