如果我理解正确Node JS是非阻塞的...所以不是等待来自数据库或其他进程的响应,而是转移到其他东西并稍后检查.
它也是单线程的.
所有这些都意味着给定的Node JS进程可以完全有效地利用单个CPU核心,但它不会使用机器上的任何其他核心,因为它一次不会使用多个核心.
这当然意味着其他CPU仍然可以被其他进程用于SQL数据库或其他有意分离的CPU重子程序,只要它们是一个单独的进程即可.
此外,如果Node JS进程具有无限循环或长时间运行的函数,则在无限循环或长时间运行的函数停止(或整个进程被终止)之前,该进程不再有用.
这一切都好吗?我的理解是正确的吗?
阅读R-project网站时,有一些(不清楚)引用R的多线程,但目前还不清楚如何编译基础产品和CRAN库.
Revolution Analytics为Windows和Redhat提供多线程基础(?)下载.
其他一些Linux发行版也会包含多线程R(和包)吗?
有多种线程模型可用于在应用程序中调度线程:
用户级线程被认为比内核级线程更快,因为内核级的上下文切换比用户级的上下文切换更昂贵。用户级线程的一大缺点是它们不利用多处理器系统,因为它们只使用一个内核级线程。
有一些文章说M:N线程模型最好使用N作为CPU核心的数量(这里有一个例子)。这样我们就可以同时实现1:1和N:1线程模型的优点。
我的问题是: