最近在不断的理解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密集型程序,完全沒有什麼意義。 。 。
這個時候應該考慮並行計算,分散式計算。