我刚刚发现了 Node 的worker_threads模块.js它看起来很有前途!
问题:将worker_threads与集群相结合是否有趣/高效,或者创建的线程是否自动分布在机器的不同 CPU 上?在这种情况下,有没有办法知道线程的亲和力?
我一直在测试(在具有多个CPU设置的Vagrant上(。 我使用top
来监控多个线程运行时的 CPU 使用率(如果百分比高于 100%,则意味着使用了多个 CPU/内核。
结果:CPU:4,工作线程:否,群集:否,最大 CPU 百分比 122 CPU:4,工作线程:否,群集:是,最大 CPU 百分比 115 + 105(两个进程(CPU:4,工作线程:是,群集:否,最大 CPU 百分比 257(对于 2 个线程(CPU:4,工作线程:是,群集:是,最大 %CPU 122
+ 127(对于 2 个进程中的 2 个线程(
从这些测试中,我得出结论,线程在可用时利用多个CPU/内核。因此,使用集群不会提高工作线程的性能。
我没有在文档中遇到任何提到亲和力的内容 - 我的假设是这是另一个操作系统级别的线程,操作系统的调度程序将负责它在哪个进程上运行。