摘要:
终于可以填上坑了。 简单回顾一下之前JS篇内容,每一次setTimeout的调用,会在一个对象中添加一个键值对,键为延迟时间,值为一个链表,将所有该时间对应的事件串起来,图如下: 而每一个延迟键值对的触发,则是在链表头生成的时候就已经开始了,如下: 回顾完毕。 与JS篇一样,这一节也简单介绍libu 阅读全文
摘要:
在Timer模块中有提到,libuv控制着延迟事件的触发,那么必须想办法精确控制时间。 如果是JS,获取当前时间可以直接通过Date.now()得到一个时间戳,然后将两段时间戳相减得到时间差。一般情况下当然没有问题,但是这个方法并不保险,因为本地计算机时间可以修改。 libuv显然不会用这么愚蠢的办 阅读全文