最近在不断的理解nodejs。
经常看到nodejs不适用于CPU密集型计算的场景,那我们在nodejs中也经常使用异步编程async来执行耗时的查询操作,查询完,再返回就可以了。是不是异步编程来解决CPU密集型计算的问题?
结论:异步编程是用来解决IO的。js是单线程,cpu密集型计算还是会耗时。
走同样的路,发现不同的人生
不行,要理解 javascript 只有一个执行线程,只要进入了计算密集区,cpu就被占用了,整个程序都卡在这里。io之所以可以使用异步加速,是因为io的延时期间并不占用cpu。
不行,异步编程是专门解决io密集型问题的。当io被block住的时候,使用异步事件,释放CPU资源给其他任务。
本质上异步编程会趋向于尽可能的使用CPU资源,所以对CPU密集型程序,完全没有什么意义。。。
这个时候应该考虑并行计算,分布式计算。
不行,要理解 javascript 只有一个执行线程,只要进入了计算密集区,cpu就被占用了,整个程序都卡在这里。io之所以可以使用异步加速,是因为io的延时期间并不占用cpu。
不行,异步编程是专门解决io密集型问题的。当io被block住的时候,使用异步事件,释放CPU资源给其他任务。
本质上异步编程会趋向于尽可能的使用CPU资源,所以对CPU密集型程序,完全没有什么意义。。。
这个时候应该考虑并行计算,分布式计算。