2014-11-02 3 views
0

Я создаю пакет сетевых приложений, чтобы упростить создание сетевых приложений, таких как чат-приложения, игры и т. Д. Интересно, можно ли в потоке сервера искать пакеты все время, не блокируя поток ?Java networking - Ищите пакеты без блокировки потока?

Я хочу сделать это, потому что, например, когда я собираюсь создать многопользовательский сервер, я не хочу, чтобы весь сервер был заблокирован и неиграбелен, потому что сервер ищет пакеты, которые сообщают серверу что кто-то соединяется.

Каков наилучший способ решения этого вопроса?

Чтобы установить обнаружение соединения в отдельной теме?
Также; сколько потоков вы можете запустить в одном приложении? Должны ли вы попытаться удержать количество потоков вниз как можно больше? Слишком много 4 потоков?

+0

У вас должна быть принимающая нить и нить на соединение. Когда вы доберетесь до 10 000 потоков, пришло время беспокоиться об этом. Может быть. – EJP

+0

Итак, рекомендуется иметь один поток для прослушивания запросов на соединение? –

+0

Что я сказал. Рекомендуется использовать один поток для каждого сокета. Может быть, даже два: один для чтения, один для написания. – EJP

ответ

0

Редактировать: Я поместил обнаружение соединения в отдельный поток и класс. Затем, когда детектор соединения был активным, он проверял пакеты и добавлял их в список запросов. Затем, из класса сервера, каждое обновление, я проверил, были ли какие-либо собранные запросы в классе обнаружения соединения.

Извините за неправильный ответ раньше.

+0

Исправлено, что именно? Исправлен вопрос о том, чтобы не блокировать поток? – EJP

+0

Извините. Написал ответ в неправильном вопросе. –

+0

Теперь я исправил это. –

Смежные вопросы