| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Зачем java.nio.* ? |
| Автор: Royan 10.8.2005, 16:44 |
| Честно говоря, познакомившись поближе, не могу взять в толк, зачем вообще нужен этот пакет? Он по функциональности практически перекрыт всякого рода векторами списками и картами...? |
| Автор: Domestic Cat 10.8.2005, 19:55 |
| nio нужен для 1. асинхронной работы с потоками, например если пишешь сервер на обычном io, тебе не избежать многопоточного прилоджения, иначе все клиенты будут обрабатываться по очереди, что может быть очень медленно при большом числе клиентов. Но многопоточное приложение означает что оно менее эффективно (время тратится на переключение\старт потоков). На nio все можно сделать в одном потоке, асинхронно. 2. Nio быстрее, например всевозможные XXXBuffer реализованы прямым маппированием на нативные массивы. |
| Автор: FatherFrost 11.8.2005, 09:22 |
| Domestic Cat А работать в nio с потоками также как и в io? |
| Автор: COVD 11.8.2005, 15:21 | ||
По моему представлению, обслуживание многих клиентов одним потоком эффективно, если запросы всех клиентов одинаковые и сравнительно легкие. Например, TimeServer - все клиенты просят у сервера одно и тоже - текущее время. В этом случае преимущества nio сыграют в полную силу. Если же все запросы разные по времени их обработки (более типичная ситуация), то наверное многопоточной схемы не избежать. В этом случае возможен гибрид. Чтение запросов и отправка ответов клиентам осуществляется одним потоком, а подготовка ответов обеспечивается другими потоками. |
| Автор: Royan 11.8.2005, 16:26 |
| OKey спасибо за ликбез. |