|
|
|
Помогите разобраться с селекторами в nio.
|
|||
|---|---|---|---|
|
#18+
redwhite90хм, интересная тема, только проблема если в одной из следующих строчек ты расчитываешь, что файлик уж записался. а у Вас есть понимание того как они этого добились не использую трэды внутри? Какой ещё "файлик"? При чем тут "трэды"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 17:16 |
|
||
|
Помогите разобраться с селекторами в nio.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, авторМожно ещё вспомнить о том что запись тоже бывает блокирующей. В OutputStream нет аналога available() Допустим, что OutputStream пишет в файлик. в классическом io мы можем вызвать flush и быть уверенными, что следующей строчкой можно считать то, что зафлашили. В случае с nio мы не можем понять когда файлик запишется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 17:25 |
|
||
|
Помогите разобраться с селекторами в nio.
|
|||
|---|---|---|---|
|
#18+
причем треды: очевидная реализация того, что вы описали для мен выглядит как-то так: new Thread(new Runnable{ в методе run начинаем юзать классическое io) }).start(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 17:27 |
|
||
|
Помогите разобраться с селекторами в nio.
|
|||
|---|---|---|---|
|
#18+
redwhite90В случае с nio мы не можем понять когда файлик запишется. Можем. Читай WritableByteChannel. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 17:27 |
|
||
|
Помогите разобраться с селекторами в nio.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, да, отлично, что можем. Через многопоточность это тоже реализуемо) Как это возможно сделать без многопоточности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 17:35 |
|
||
|
Помогите разобраться с селекторами в nio.
|
|||
|---|---|---|---|
|
#18+
redwhite90Как это возможно сделать без многопоточности?F(inite)S(tate)M(achine) aka "конечный автомат". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 20:29 |
|
||
|
Помогите разобраться с селекторами в nio.
|
|||
|---|---|---|---|
|
#18+
redwhite90причем треды: очевидная реализация того, что вы описали для мен выглядит как-то так: new Thread(new Runnable{ в методе run начинаем юзать классическое io) }).start();Проблема этого решения заключается в том, что оно не скалируется. Если у вас 10 сокетов и 10 потоков - ничего страшного. Если у вас 10К сокетов и 10К потоков - у вас жопа. Для этого NIO и придуман. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2014, 21:06 |
|
||
|
Помогите разобраться с селекторами в nio.
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovredwhite90Как это возможно сделать без многопоточности?F(inite)S(tate)M(achine) aka "конечный автомат". что-то мне это не ответило на все вопросы, хотя вроде машину Тью́ринга в универе когда-то заставляли писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 01:22 |
|
||
|
Помогите разобраться с селекторами в nio.
|
|||
|---|---|---|---|
|
#18+
questionerчто-то мне это не ответило на все вопросыЭто потому, что требуется нарисовать граф состояний и переходов, а потом ещё подумать, как исключить нежелательные переходы, ведущие к блокировке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 05:19 |
|
||
|
Помогите разобраться с селекторами в nio.
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, ну всё равно тогда у этого конечного автомата должен быть свой отдельный поток. правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 10:08 |
|
||
|
Помогите разобраться с селекторами в nio.
|
|||
|---|---|---|---|
|
#18+
Нет, не должен. Вы сразу строите конечный автомат для задачи "есть много сокетов с неопределёнными моментами получения-передачи данных". Переход: "если данных нет - работаем со следующим сокетом" становится частью такого КА. Вместе с решением задачи "выбор рабочего сокета из набора имеющихся". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 20:41 |
|
||
|
|

start [/forum/topic.php?fid=59&startmsg=38712408&tid=2126784]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
219ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 499ms |

| 0 / 0 |
