Size: a a a

2021 January 06

ИИ

Иван Иванов... in KotlinLangRu
Bogdan Panchenko
Конечно
и я так понимаю, для асинхронных неблокирующих запросов в 1 поток нужно подключать специализированные библиотеки, так?
источник

VS

Vladislav Sumin in KotlinLangRu
Иван Иванов
там их несколько потоков. только из-за этого асинхронность.
Есть asynchronousSocketChannel
источник

VS

Vladislav Sumin in KotlinLangRu
Но лучше не надо
источник

VS

Vladislav Sumin in KotlinLangRu
Юзай ktor для таких задач
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
и я так понимаю, для асинхронных неблокирующих запросов в 1 поток нужно подключать специализированные библиотеки, так?
Нет нужно использовать не блокирующие реализации. Но могу вас растопит очень часто под капотом это обычный тредпул - магии нет
источник

ИИ

Иван Иванов... in KotlinLangRu
Vladislav Sumin
Юзай ktor для таких задач
ну вот у ктора несколько движков
источник

ИИ

Иван Иванов... in KotlinLangRu
и только один на корутинах
источник

VS

Vladislav Sumin in KotlinLangRu
Bogdan Panchenko
Нет нужно использовать не блокирующие реализации. Но могу вас растопит очень часто под капотом это обычный тредпул - магии нет
В случае с сокетами там под капотом 1 поток на все запросы.
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
и только один на корутинах
И ? Я не думаю что они там nio используется, ведь jvm 6
источник

BP

Bogdan Panchenko in KotlinLangRu
Vladislav Sumin
В случае с сокетами там под капотом 1 поток на все запросы.
И пропадает асинхронность. Все становится в очередь - обычный io
источник

VS

Vladislav Sumin in KotlinLangRu
Я юзаю netty, в качестве движка там nio под капотом
источник

VS

Vladislav Sumin in KotlinLangRu
Bogdan Panchenko
И пропадает асинхронность. Все становится в очередь - обычный io
Нет
источник

BP

Bogdan Panchenko in KotlinLangRu
Vladislav Sumin
Нет
Ну асинк типа есть. Но все равно все в очереди
источник

BP

Bogdan Panchenko in KotlinLangRu
Vladislav Sumin
Я юзаю netty, в качестве движка там nio под капотом
Это сервер. Для клиента нет нети (не было)
источник

VS

Vladislav Sumin in KotlinLangRu
Bogdan Panchenko
Ну асинк типа есть. Но все равно все в очереди
Там юзается selector который использует нативную реализацию в ос, когда приходит ответ selector узнает об этом и обрабатывает в отдельном потоке
источник

ИИ

Иван Иванов... in KotlinLangRu
Bogdan Panchenko
И ? Я не думаю что они там nio используется, ведь jvm 6
Ktor же для поддержания мпп использует разные движки для разных платформ. и сам не работает с низким уровнем.
источник

VS

Vladislav Sumin in KotlinLangRu
Работа над соединением чтение и запись данных в отдельных потоках
источник

VS

Vladislav Sumin in KotlinLangRu
Селектор трудно перегрузить при такой реализации если вы не Гугл конечно
источник

BP

Bogdan Panchenko in KotlinLangRu
Vladislav Sumin
Там юзается selector который использует нативную реализацию в ос, когда приходит ответ selector узнает об этом и обрабатывает в отдельном потоке
Нууу в теории можно открыть несколько сокентов, но это по факту используется другие треды, просто уже не рантайм jvm
источник

VS

Vladislav Sumin in KotlinLangRu
Bogdan Panchenko
Это сервер. Для клиента нет нети (не было)
Для клиента нет, на клиенте я ktor с okhttp юзаю, хз что там под капотом, но на клиенте не критично, там не бывает много запросов
источник