powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите разобраться с селекторами в nio.
11 сообщений из 36, страница 2 из 2
Помогите разобраться с селекторами в nio.
    #38712408
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90хм, интересная тема, только проблема если в одной из следующих строчек ты расчитываешь, что файлик уж записался.
а у Вас есть понимание того как они этого добились не использую трэды внутри?
Какой ещё "файлик"? При чем тут "трэды"?
...
Рейтинг: 0 / 0
Помогите разобраться с селекторами в nio.
    #38712415
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,


авторМожно ещё вспомнить о том что запись тоже бывает блокирующей. В OutputStream нет аналога available()

Допустим, что OutputStream пишет в файлик.

в классическом io мы можем вызвать flush и быть уверенными, что следующей строчкой можно считать то, что зафлашили.

В случае с nio мы не можем понять когда файлик запишется.
...
Рейтинг: 0 / 0
Помогите разобраться с селекторами в nio.
    #38712421
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
причем треды:

очевидная реализация того, что вы описали для мен выглядит как-то так:

new Thread(new Runnable{

в методе run начинаем юзать классическое io)
}).start();
...
Рейтинг: 0 / 0
Помогите разобраться с селекторами в nio.
    #38712422
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90В случае с nio мы не можем понять когда файлик запишется.
Можем. Читай WritableByteChannel.
...
Рейтинг: 0 / 0
Помогите разобраться с селекторами в nio.
    #38712433
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

да, отлично, что можем.

Через многопоточность это тоже реализуемо)

Как это возможно сделать без многопоточности?
...
Рейтинг: 0 / 0
Помогите разобраться с селекторами в nio.
    #38712563
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Как это возможно сделать без многопоточности?F(inite)S(tate)M(achine) aka "конечный автомат".
...
Рейтинг: 0 / 0
Помогите разобраться с селекторами в nio.
    #38712575
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90причем треды:

очевидная реализация того, что вы описали для мен выглядит как-то так:

new Thread(new Runnable{

в методе run начинаем юзать классическое io)
}).start();Проблема этого решения заключается в том, что оно не скалируется. Если у вас 10 сокетов и 10 потоков - ничего страшного. Если у вас 10К сокетов и 10К потоков - у вас жопа. Для этого NIO и придуман.
...
Рейтинг: 0 / 0
Помогите разобраться с селекторами в nio.
    #38712652
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorovredwhite90Как это возможно сделать без многопоточности?F(inite)S(tate)M(achine) aka "конечный автомат".

что-то мне это не ответило на все вопросы, хотя вроде машину Тью́ринга в универе когда-то заставляли писать.
...
Рейтинг: 0 / 0
Помогите разобраться с селекторами в nio.
    #38712668
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerчто-то мне это не ответило на все вопросыЭто потому, что требуется нарисовать граф состояний и переходов, а потом ещё подумать, как исключить нежелательные переходы, ведущие к блокировке.
...
Рейтинг: 0 / 0
Помогите разобраться с селекторами в nio.
    #38712752
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,

ну всё равно тогда у этого конечного автомата должен быть свой отдельный поток. правильно?
...
Рейтинг: 0 / 0
Помогите разобраться с селекторами в nio.
    #38713446
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, не должен.
Вы сразу строите конечный автомат для задачи "есть много сокетов с неопределёнными моментами получения-передачи данных".
Переход: "если данных нет - работаем со следующим сокетом" становится частью такого КА. Вместе с решением задачи "выбор рабочего сокета из набора имеющихся".
...
Рейтинг: 0 / 0
11 сообщений из 36, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите разобраться с селекторами в nio.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]