Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
SelectorThread обсуждение...
#1
Ребят, недавно, при написании своего ВебСервера, разбирал этот SelectorThread, и наткнулся на 1 интересную вещь...

Зачем в основном потоке обработки ключей\событий (SelectionKey.OP_CONNECT и т д) после выбора ключа и т д, в нормальном состоянии стоит СЛИП?

Ладно при исключении...
Но зачем в нормальном потоке делать слип?
PHP код:
<?php 
try
{
Thread.sleep(_sc.SLEEP_TIME);
}
catch(
InterruptedException ie)
{

}
}
catch(
IOException e)
{
ТРА ТАТА, тут тоже слип, но ничего против этого слипа я не имею)
}

Просто не знаю, и хочу услышать Ваш совет...
В своём веб-сервере я снес его нах, и получил в 2-3 раза лучший результат в быстродействии, по тестам ApachBench...
Как насчет живого сервера?
Стоит ли убирать?
И вообще зачем он там....?
Что может случится если убрать этот слип....
Ответ
#2
Профайлер бы запустил и посмотрел сколько selectNow() генерит мусора и нагрузку на CPU этого потока, если убран sleep.

sleep имеет смысл убирать если ты собрался переписывать логику выборки ключей из селектора, почитал бы по java nio, чтоль, в двух словах не объяснить. еще лучше, читать и смотреть реализации на примере xnio и netty.
Ответ
#3
Если б Runnable.run() вызывался б по мере поступления ключей - но да б убрать , а там там Цыкл - а сам селектор не дает сильную нагрузку (на вызов) - итог цыкл грузит 100% КПУ
consulo.io - Consulo - multi-language IDE
Ответ
#4
VISTALL Написал:Если б Runnable.run() вызывался б по мере поступления ключей - но да б убрать , а там там Цыкл - а сам селектор не дает сильную нагрузку (на вызов) - итог цыкл грузит 100% КПУ

Благодарю!
Ответ
#5
Да, пустой цикл в то-яме-то-канаве грузить ЦэПэ в сотню.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Обсуждение раздела Java CHIPSET 7 7,151 10-22-2009, 12:51 PM
Последний пост: olegfish

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)