nodejs中的settimeout用C语言库libev ev_timer实现。EV_TIMER如何工作?
它是使用投票实施的吗?如果我设置了30秒的超时,是否有任何过程检查每个毫秒的待定超时吗?
libev已被libuv取代。
此处说明了计时器API
基本上,事件循环进行轮询后,系统中的所有其他非IO活动都完成。目前,它将有一个或多个I/O活动,以及一个或多个计时器事件。民意调查的输入的制作方式是在注册时间事件中最不超时。这与事件循环所维护的相对时间字段结合在一起,有助于找出正确的时间进行计时器回调。
简而言之,通过民意调查,而不是通过常规唤醒和重新检查将等待时间委托给操作系统。
希望这会有所帮助。