Это не интеграция с netpoller как таковая , которая делает Go сильным в своей области - это скорее способ интеграции: вместо того, чтобы быть прикрепленным к библиотеке, в Go, netpoller тесноинтегрирован прямо в среду выполнения и планировщик (который решает, какую и какую программу запускать и когда).
Соединение сверхлегких потоков выполнения - подпрограмм - с netpoller позволяет callback-свободное программирование. То есть, как только ваша служба подключится к другому клиенту, вы просто передаете это соединение групповой программе, которая просто читает данные из нее (и записывает в нее свой поток ответов). Как только данные недоступны, когда программа хочет их прочитать, планировщик приостанавливает работу программы и разблокирует ее, как только netpoller сообщает о наличии данных;то же самое происходит, когда программа хочет записать данные, но буфер отправки полон.
Напомним, что netpoller в Go переплетен с планировщиком goroutine, который позволяет goroutines прозрачно ожидать доступности данных, не требуя от программиста явногозакодируйте цикл событий и обратные вызовы или разберитесь с «фьючерсами» и «обещаниями», которые являются простыми обратными вызовами, завернутыми в красивые объекты.
Я приглашаю вас прочитать это классическое эссе , которое объясняет этот материал с помощьюмного красивых слов.