BAR*_*BAR 3 c++ erlang multithreading
如果我使用erlang作为spawner进程,它会执行主要功能,这些功能对于与服务器通信和处理服务器 - 客户端通信消息而言速度并不太快.
然后我选择在erlang中生成一个进程并从中运行c/c ++代码,这会使我的代码更快吗?
与c/c ++中的等价物相比,erlang会更有效地处理多线程吗?
如果我要从erlang中生成许多c节点,它们是否会堆叠在单个核心上,或者erlang会处理多线程.这是我想知道的要点.
您在讨论中讨论了两个不同的概念:运行C/C++代码和C节点的Erlang进程.
从Erlang内部运行的C或C++代码根本没有安排.事实上,它将阻止当前CPU内核的Erlang调度程序,因此在C-land中运行时间很长很可能会破坏您的(Erlang)调度.
例如,在四核处理器上,Erlang默认会创建4个调度程序线程,每个线程将占用一个核心.任何运行C代码的进程都会阻塞它所分配的调度程序,直到代码完成执行.
运行C节点时,您完全靠自己.Erlang节点根本不知道C节点的调度,它只关心它自己的调度.当然,您可以创建自己的调度,例如将一个核心专用于C节点,将三个核心专用于Erlang节点或类似的东西.
| 归档时间: |
|
| 查看次数: |
903 次 |
| 最近记录: |