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