Twisted有一个“非阻塞”事件循环。
我理解阻塞事件循环的作用(来自维基百科页面),但无法弄清楚非阻塞事件的作用。
答案 0 :(得分:3)
while (true)
wait_for_events
handle_events
基本上,非阻塞事件循环使用允许同时等待多个事件的设备(UNIX上为select
/ poll
,Windows上为WaitForMultipleEvents
,Linux上为epoll
FreeBSD上的kqueue
等)。在主循环的每次迭代中,事件(文件描述符,定时器等)都在某种句柄中注册。然后,调用等待事件的函数(例如select
)。这通常会返回在调用该函数期间发生的所有事件。最后,循环处理该事件 - 通常通过调用与事件关联的回调。
有关详细信息,请参阅libevent或某些GUI工具包事件循环的实现 - GTK +或Qt。