NodeJs多线程、多进程、定时任务

JavaScript09

NodeJs多线程、多进程、定时任务,第1张

JS是单线程语言,减少了线程间切换的开销,且不用考虑锁的问题,因此适合IO密集型项目。

JS的单线程,其实指的是js主引擎线程的。除此之外还有定时器线程、异步http线程(ajax)等,最终通过Event Loop协调执行。

为了充分利用多核CPU,可以使用 worker_threads 实现多线程, child_process 或 cluster 实现多进程(master-worker模式)。

不同于浏览器中的 web worker ,nodejs中通过 worker_threads 实现多线程。通常在计算密集型场景中,才需要使用NodeJs多线程,因此使用场景较少。

electron中即经常使用该模块。

cluster 封装了 child_process.fork ,并内置了负载均衡,可有效实现多进程。

js如何保证时间精准不跳秒

js如何保证时间精准不跳秒

1. 使用`window.performance.now()`方法来获取高精度的时间戳,它会返回当前时间和距离页面加载的时间的差值,可以保证精准到微妙级别。

2. 使用`setTimeout()`和`setInterval()`函数来定时调用,这样可以保证时间的精准性。

3. 使用`Date.now()`方法来获取当前时间戳,它可以保证精准到毫秒级别。