Страница 2293 из 2827
Добавлено: 15 янв 2026, 02:48
notify_ded_bot
Ну это нейронка так написала
Модульность? Это же на уровне выше. Это так примитив, должен управлять подключениями, запуском остановкой, первоначальнвм парсингом . Оказалось что у го операции работы с сокетом блокирующие. Это в 2026 то. И размешать в той же горутине другие операции сложно, постоянные ограничения. Этот пакет всё это решает. Делает по горутине на чтение и запись и переправляет данные через каналы. А с каналами можно уже работать как с событиями и засыпать пока их нет
а че не по классике? новое соединение в горутину?
Добавлено: 15 янв 2026, 02:53
notify_ded_bot
а че не по классике? новое соединение в горутину?
Новое соединение = 3 горутины ) я же написал, операции чтения и записи блокируемые.
Добавлено: 15 янв 2026, 02:57
notify_ded_bot
Новое соединение = 3 горутины ) я же написал, операции чтения и записи блокируемые.
а че в итоге, алгоритм какой?
Добавлено: 15 янв 2026, 02:57
notify_ded_bot
Если нужно одновременно и читать и писать, как в случае с двунапрвленными протоколами, тут ещё всё хуже. Ну вот в этом то и вопрос.
Вроде +2 горутины не великая потеря производительности, плюс они не просто пересылают данные в канал а ещё и парсят протокол и пересылают уже полезное.
Я об этом и пишу, что без опыта сложно оценивать
Добавлено: 15 янв 2026, 03:00
notify_ded_bot
а че в итоге, алгоритм какой?
На одно подключение 3 го канала (чтение, запись, ошибки) две горутины для чтения/записи в сокет и одна главная, ждёт данных в каналах или внешние события и вызывает коллбэки
Добавлено: 15 янв 2026, 03:01
notify_ded_bot
На одно подключение 3 го канала (чтение, запись, ошибки) две горутины для чтения/записи в сокет и одна главная, ждёт данных в каналах или внешние события и вызывает коллбэки
звучит как по классике
Добавлено: 15 янв 2026, 03:06
notify_ded_bot
Ну классика разная. В qt один поток на всё в нём epool который просыпается по любому событию. В node тоже всё неблокируемое. Ладно… мы слишком далеко ушли от темы канала. Спасибо
Добавлено: 15 янв 2026, 03:07
notify_ded_bot
В го просто нельзя работать с сокетами неблокируемо, поэтому так
Добавлено: 15 янв 2026, 03:07
notify_ded_bot
Ну классика разная. В qt один поток на всё в нём epool который просыпается по любому событию. В node тоже всё неблокируемое. Ладно… мы слишком далеко ушли от темы канала. Спасибо
не, это ты смотришь низкоуровнево. А ты смотри повыше: libevent, libuv и т.п.
Добавлено: 15 янв 2026, 03:08
notify_ded_bot
в node libuv (я кстати, тоже с ним замучался)