Cluster
nodejs是单进程单线程,在多核机器上无法充分利用性能。nodejs引入cluster模块,可以提供多进程编程力能。
cluster
模块通过cluster.fork()
方法创建多个进程实例,而cluster.fork()
内部又是通过child_process.fork()
来创建子进程的。
示例:
worker对象
worker对象是cluster.fork()
的返回值,代表一个worker进程。
属性和方法如下:
worker.id
worker.id返回当前worker的独一无二的进程编号。这个编号也是cluster.workers
中指向当前进程的索引值。
worker.process
所有的工作进程都是通过child_process.fork()
来创建的,这个方法返回的对象被存储为worker.process
。在工作进程中, process属于全局对象。
worker.send(message[, sendHandle][, callback])
发送一个消息给工作进程或主进程,也可以附带发送一个handle。
主进程调用这个方法会发送消息给具体的工作进程。还有一个等价的方法是ChildProcess.send()
。
工作进程调用这个方法会发送消息给主进程。还有一个等价方法是process.send()
。
输出:
Last updated