Abd*_*tah 28 multithreading node.js
我试图了解ThreadingNodeJS 及其工作原理。
目前我的理解是:
集群: -
子进程:
也使用不同的可用内核,但它很糟糕,因为它会创建虚拟内存,因为它会花费大量资源来分叉子进程。
分叉进程可以通过事件与主线程通信,反之亦然,但分叉进程之间没有通信。
工作线程:
bufferArray1)为什么worker threads比child process以及何时我们应该使用它们中的每一个都更好?
2)如果我们有 4 个内核和集群/分叉 nodeJS webserver 4 次(每个内核 1 个进程),然后我们使用worker threads(没有可用的内核)会发生什么?
Sud*_*mal 22
您在工作线程下提到了一点,它们在性质上与子进程相同。但实际上他们不是。
另一方面,进程有自己的内存空间,线程使用共享内存空间。
线程是进程的一部分。进程可以启动多个线程。这意味着在进程下启动的多个线程共享为该进程分配的内存空间。
我想以上一点回答了你的第一个问题,为什么线程模型比进程更受欢迎。
第二点:假设处理器一次可以处理 4 个线程的负载。但是我们有 16 个线程。然后他们都将开始共享 CPU 时间。
考虑到 4 核 CPU,4 个线程有限的进程可以更好地利用它,但是当线程数很高时,所有线程将开始共享 CPU 时间。(当我说所有线程将开始共享 CPU 时间时,我没有考虑进程的优先级和友好度,甚至没有考虑在同一台机器上运行的其他进程。)
我对时间切片和 CPU 负载共享的快速搜索:
本文甚至回答了进程之间的切换如何降低整体性能。
工作线程在本质上类似于任何其他编程语言中的线程。
您可以查看此线程以全面了解线程和进程 之间的区别:进程和线程之间有什么区别?
| 归档时间: |
|
| 查看次数: |
9055 次 |
| 最近记录: |