- 論壇徽章:
- 0
|
原帖由 blizzard213 于 2008-9-6 00:39 發(fā)表 ![]()
erlang的運(yùn)行時(shí)是用c實(shí)現(xiàn)的吧
它的進(jìn)程應(yīng)該也是用c實(shí)現(xiàn)的
為什么用c+系統(tǒng)接口模擬出來(lái)的進(jìn)程卻要比native進(jìn)程還牛逼呢?
我是函數(shù)編程以及腳本語(yǔ)言的菜鳥(niǎo)
還想問(wèn)大拿們一個(gè)問(wèn)題
這些語(yǔ)言的系統(tǒng)庫(kù)到底是如何 ...
在windows2000下加載了erlang解釋器(或虛擬機(jī)),他產(chǎn)生了一個(gè)進(jìn)程.八個(gè)線程(雙核的機(jī)器)
運(yùn)行如下代碼:
- -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]).
復(fù)制代碼
mprocess:run().
進(jìn)程數(shù)量并沒(méi)有增加,線程數(shù)量也沒(méi)增加.
說(shuō)明可能:
1. spawn調(diào)用并不會(huì)產(chǎn)生windows操作系統(tǒng)級(jí)的進(jìn)程.
2. erlang的多進(jìn)程"可能"是依賴windows操作系統(tǒng)的多線程為基礎(chǔ)的(實(shí)際上這點(diǎn)有于時(shí)間關(guān)系還不能明確確認(rèn)).
由于時(shí)間關(guān)系,沒(méi)能做仔細(xì)的分析,因此還不能確認(rèn). 等有時(shí)間時(shí)在進(jìn)一步確認(rèn)一下.
lz或其他大拿若有時(shí)間也可仔細(xì)測(cè)試分析一下,并能把結(jié)論跟大家交流一下最好. |
|