摘要: 前几天看了一道阿里的笔试题,说的是在JavaScript中如何实现多线程。众所周知,在JavaScript中,所有代码都是单线程的。当然,有人会说,用setTimeout或setInterval不就可以了吗。其实这只是一个假象,我们在setTimeout或setInterval中设定的时间间隔只是告诉浏览器,隔这么多秒后把这个函数放到执行队列中,至于这个函数什么时候执行,你完全无法预知。不信的可以自己在调用setTimeout或setInterval之前先执行一个死循环。 也就是说,我们用setTimeout或setInterval只能模拟多线程执行,但实际上也还是单线程。当然,我这里讲... 阅读全文