首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Erlang历程的创建

2012-10-28 
Erlang进程的创建个人理解:1、start1/0 创建的进程 创建结束后立即消失2、start2/0 创建的进程 创建结束后再

Erlang进程的创建

个人理解:

1、start1/0 创建的进程 创建结束后立即消失

2、start2/0 创建的进程 创建结束后再收到一次消息后立即消失

3、start2/0 创建的进程 创建结束后可以多次接受消息

造成这三者的区别关键是与receive的写法。

是否可以理解为一个进程的生命周期是receive--end?

测试代码:

?

 1 -module(testspawn).  2 -compile(export_all).  3 start1()->  4     spawn(?MODULE,hello1,[]).  5      6 start2()->  7     spawn(?MODULE,hello2,[]).  8      9 start3()-> 10     spawn(?MODULE,hello3,[]). 11     12 hello1()-> 13     ok. 14  15 hello2()-> 16     receive 17         T -> 18               T 19     end. 20  21 hello3()-> 22      receive                                                                                                                                              23           T -> 24              T, 25              hello3() 26     end.

测试结果:4> Pid1 = testspawn:start1().

<0.48.0>5> erlang:is_process_alive(Pid1).false6> Pid2 = testspawn:start2().     <0.51.0>7> erlang:is_process_alive(Pid2).true8> Pid2 ! pid2.pid29> erlang:is_process_alive(Pid2).false10> Pid3 = testspawn:start3().    <0.56.0>11> erlang:is_process_alive(Pid3).true12> Pid3 ! test.test13> erlang:is_process_alive(Pid3).true14> Pid3 ! test1.                 test115> erlang:is_process_alive(Pid3).true16> ?

?

?

热点排行