Вопрос

Я понимаю, что они работают в некотором роде от того, чтобы сделать нить на пользователя. Как именно это работает?

(Разблокировка «не блокировка» есть что с этим делать?)

Это было полезно?

Решение

Из витой документации:

Реактор является ядром контура события внутри скрученного - цикла, которая приводит приводы с помощью скрученных. Контур событий - это конструкция программирования, которая ожидает и отправляет события или сообщения в программе. Он работает, вызывая некоторые внутренние или внешний «провайдер событий», который обычно блокирует до тех пор, пока событие не пришло, а затем вызывает соответствующий обработчик событий («Отправляет событие»). Реактор предоставляет базовые интерфейсы в ряд услуг, включая сетевые коммуникации, резьбу и диспетчеризации событий.

Смотрите также http://en.wikipedia.org/wiki/event_loop.

Не блокировка относится к тому, что если вы хотите обрабатывать события более чем на одном сокете (или, в целом, от более двух каких-либо видов источника событий) в одном потоке вы не можете использовать блокировка операции для обработки этих событий. Если вы выполняете блокировку, прочитанные на первом сокете, то вы не сможете прочитать со второго сокета, пока некоторые байты не дойдут на первый. Это не очень хорошо работает, так как вы не можете знать, какой сокет будет иметь байты, чтобы прочитать первым. Вместо этого вы используете что-то вроде select (Описано более подробно на странице Википедии, связанной выше), чтобы сказать вам, какая розетка имеет байты, а затем прочитайте их из этого сокета без блокировки.

Это все означает, что вы можете обслуживать события из любого количества источников событий, один за другим, придавая появление обращения с ними все одновременно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top