zxsby / blog

3 stars 0 forks source link

每日一题--- Node 更适合处理 I/O 密集型任务还是 CPU 密集型任务,为什么? #24

Open zxsby opened 3 years ago

zxsby commented 3 years ago

Node 更适合处理 I/O 密集型任务还是 CPU 密集型任务,为什么?

Node更适合处理I/O密集型的任务。

因为Node的I/O密集型任务可以异步回调,利用事件环的处理能力,资源占用极少,并且事件循环能力避开了多线程的调用,在调用方面是单线程,内部处理其实是多线程的。

并且由于Javascript是单线程的原因,Node不适合处理CPU密集型的任务,CPU密集型的任务会导致CPU时间片不能释放,使得后续的I/O无法发起,从而造成阻塞。但是可以利用到多进程的特点完成对一些CPU密集型任务的处理,不过由于Javascript并不支持多线程,所以在这方面的处理能力会弱于其他多线程语言(java,Go)