如何利用Node.js构建高效的多进程应用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计687个文字,预计阅读时间需要3分钟。
目录+前言+进程的创建和使用+多核利用率+创建子进程+进程间通信+IPC+总结+前言+JavaScript+主线程运行在单个进程的单个线程上。这样做的好处是:程序状态是单一的,在没有多线程的情况下,情况更稳定。
目录
- 前言
- 进程的创建和使用
- 多核利用率
- 创建子进程
- 进程间通信 IPC
- 总结
前言
JavaScript 主线程运行在单个进程的单个线程上。这样做的好处是:
- 程序状态是单一的,在没有多线程的情况下没有锁、线程同步问题,
- 操作系统在调度时因为较少上下文的切换,可以很好地提高CPU的使用率。
但是单进程单线程并非完美的结构,一旦线程中某段代码发生异常阻塞,会阻塞代码执行而浪费资源。同时,如今CPU基本均是多核的,服务器往往还有多个CPU。
因此 Nodejs 不可避免的面临两个问题:如何充分利用多核CPU ****和 ****如何保证进程的健壮性和稳定性 。 另外,由于 Nodejs 中所有处理都在单线程上进行,影响事件驱动服务模型性能的点在于CPU的计算能力,而不受多进程或多线程模式中资源上限的影响,可伸缩性远比前两者高。如果解决掉多核CPU的利用问题,带来的性能上提升是可观的。
本文共计687个文字,预计阅读时间需要3分钟。
目录+前言+进程的创建和使用+多核利用率+创建子进程+进程间通信+IPC+总结+前言+JavaScript+主线程运行在单个进程的单个线程上。这样做的好处是:程序状态是单一的,在没有多线程的情况下,情况更稳定。
目录
- 前言
- 进程的创建和使用
- 多核利用率
- 创建子进程
- 进程间通信 IPC
- 总结
前言
JavaScript 主线程运行在单个进程的单个线程上。这样做的好处是:
- 程序状态是单一的,在没有多线程的情况下没有锁、线程同步问题,
- 操作系统在调度时因为较少上下文的切换,可以很好地提高CPU的使用率。
但是单进程单线程并非完美的结构,一旦线程中某段代码发生异常阻塞,会阻塞代码执行而浪费资源。同时,如今CPU基本均是多核的,服务器往往还有多个CPU。
因此 Nodejs 不可避免的面临两个问题:如何充分利用多核CPU ****和 ****如何保证进程的健壮性和稳定性 。 另外,由于 Nodejs 中所有处理都在单线程上进行,影响事件驱动服务模型性能的点在于CPU的计算能力,而不受多进程或多线程模式中资源上限的影响,可伸缩性远比前两者高。如果解决掉多核CPU的利用问题,带来的性能上提升是可观的。

