- 论坛徽章:
- 0
|
原帖由 blizzard213 于 2008-9-6 00:39 发表 ![]()
erlang的运行时是用c实现的吧
它的进程应该也是用c实现的
为什么用c+系统接口模拟出来的进程却要比native进程还牛逼呢?
我是函数编程以及脚本语言的菜鸟
还想问大拿们一个问题
这些语言的系统库到底是如何 ...
在windows2000下加载了erlang解释器(或虚拟机),他产生了一个进程.八个线程(双核的机器)
运行如下代码:
- -module(mprocess).
- -export([run/0, say_string/2]).
- say_string(What, 0) -> done;
- say_string(What,Count) ->io:format("~p~n", [What]),
- say_string(What, Count - 1).
- run()->spawn(mprocess, say_string, [hello, 300000]),
- spawn(mprocess, say_string, [goodbye, 300000]).
复制代码
mprocess:run().
进程数量并没有增加,线程数量也没增加.
说明可能:
1. spawn调用并不会产生windows操作系统级的进程.
2. erlang的多进程"可能"是依赖windows操作系统的多线程为基础的(实际上这点有于时间关系还不能明确确认).
由于时间关系,没能做仔细的分析,因此还不能确认. 等有时间时在进一步确认一下.
lz或其他大拿若有时间也可仔细测试分析一下,并能把结论跟大家交流一下最好. |
|