许多setTimeouts的后果

我正在构build一个用户可以生成自定义计时器的页面。 这些定时器通过setTimeout在一个heroku nodejs后端运行。 然而,我有点担心可能有几千个长时间的setTimeout同时运行。

我发现这个问题,其中指出JavaScript的计时器是在浏览器中的一个单独的线程上运行。 在nodejs中的情况是一样的吗? 如果是这样,在这个线程上有数千个定时器会有什么后果呢?

编辑:关于我想要做什么的更多信息。 我正在构build一个同步页面,可以放在屏幕上,然后用户可以访问浏览器中的页面并更改其实例的内容。 这将在所有打开的页面实例中反映出来。 用户还应该能够设置定时器,这应该在定时器结束时推送新的内容。 这是我正在考虑使用服务器端setTimeouts来做。 我知道我应该使用一个heroku调度器插件,但我想降低成本(这种页面不完全是一个赚钱)。 最后,用户应该能够生成自己的这个页面的实例,一个新的url等。 这是可扩展性问题的起因。 如果存在100个页面实例,并且每个实例设置了10个定时器,则在后端有1000个定时器。

基于mscdex在评论中的解释:

timers.js的源代码很容易遵循,但基本上会发生的是,对具有相同过期/间隔的setTimeout()和setInterval()的所有调用都组合在一起,并使用相同的后备计时器。 这些setTimeout()/ setInterval()请求会按照添加的顺序追加到与该定时器相关的列表中,以便每当定时器触发时,都会迭代列表(执行callback),直到达到超时过期了。 此时,它等待当前时间与该组中下一个超时之间的差值。 我希望这是有道理的。

我得出的结论是,有很多setTimeout不会损害性能,因为它们都是一个计时器。 只是回答自己,因为没有人做。