`
langzhe
  • 浏览: 289660 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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).
false
6> Pid2 = testspawn:start2().     
<0.51.0>
7> erlang:is_process_alive(Pid2).
true
8> Pid2 ! pid2.
pid2
9> erlang:is_process_alive(Pid2).
false
10> Pid3 = testspawn:start3().    
<0.56.0>
11> erlang:is_process_alive(Pid3).
true
12> Pid3 ! test.
test
13> erlang:is_process_alive(Pid3).
true
14> Pid3 ! test1.                 
test1
15> erlang:is_process_alive(Pid3).
true
16>  

 

 

2
1
分享到:
评论

相关推荐

    Erlang进程模型学习PPT

    Erlang进程模型特点 一个进程可以创建数以万计的轻量级进程 每个轻量级进程仅仅完成单一功能 一个复杂的功能可以由多个轻量级进程协同完成 当遇到file或socket等阻塞的io时, 调用的轻量级进程被阻塞,整个进程不...

    erlang 中进程

    2. 进程创建 Erlang中可以通过`spawn/1`、`spawn/2`、`spawn/3`或`spawn_link/1`等函数创建新进程。例如,`spawn/1`接受一个函数,该函数将在新进程中运行。这使得Erlang能轻松地实现并行计算和分布式任务。 3. ...

    erlang port driver test

    1. **创建端口**:Erlang 进程可以通过 `open_port/2` 函数创建一个新的端口,并指定端口的选项,如可执行文件路径、环境变量等。 2. **数据传输**:Erlang 进程通过端口发送二进制数据到外部程序,外部程序处理后...

    erlang的timer和实现机制

    1. 创建定时器进程:当调用`timer`模块的函数时,Erlang VM会创建一个新的进程,并将其与指定的延迟时间关联。 2. 计时:Erlang VM内部维护了一个时间戳,用于跟踪当前时间和定时器的到期时间。在进程调度时,VM会...

    xiandiao_erlang_Erlang课后习题_

    2. **掌握并发编程**:习题可能包含创建和管理Erlang进程、实现进程间的消息传递,帮助学习者理解并发编程的核心概念。 3. **函数式编程思维**:习题可能涉及无副作用函数的编写,以及如何利用函数式编程特性如递归...

    Erlang_CNode用户指

    CNode的主要功能包括创建Erlang进程,发送和接收消息,以及调用Erlang的函数。 **Erlang_CNode用户指南** Erlang_CNode用户指南通常会涵盖以下几个核心主题: 1. **安装和配置**:指导用户如何在系统上安装Erlang...

    Erlang入门:构建application练习4(进程link的作用)

    在Erlang编程语言中,进程是其核心特性之一,它们是并发执行的实体,类似于其他语言中的线程。在Erlang中,进程间通信(IPC)是通过消息传递来实现的,而`link`机制是这个通信模型中非常重要的一部分。本教程将通过...

    erlang_版本24.3.4.4

    Erlang以其强大的错误恢复能力和轻量级进程(称为Erlang进程)而闻名,这些进程具有内置的并发性和容错性。 在安装Erlang 24.3.4.4之前,首先需要了解你的操作系统是否支持。Erlang支持多种平台,包括Windows、...

    erlang-java聊天

    3. **连接管理**:Erlang服务器需要维护一个客户端连接列表,每当接收到新的连接请求时,都会创建一个新的Erlang进程来处理。Java客户端在连接成功后,会维持一个持久的连接,用于收发消息。 **测试与调试** 在开发...

    erlpool:基于ETS的Erlang进程的Erlang循环负载均衡器

    基于ETS的Erlang进程的Erlang循环负载均衡器 erlpool做什么 Erlpool是用于Erlang进程的循环负载均衡器,主要用于与数据库连接之类的事情。 与和相比, erlpool非常简单且很小(〜100 LOC),并且没有关于工人的假设...

    erlang整理的一些心得和lunix查看cpu和内存信息的方法

    它使用轻量级进程(Lightweight Processes, LWP)实现并发,每个进程占用资源少,易于创建和通信,使得处理大量并发任务变得高效。 2. **错误恢复与容错**:Erlang 采用“Let It Crash”哲学,鼓励程序在遇到错误时...

    erlang中文基础教程

    1. **进程**:Erlang进程通过`spawn`函数创建,它们之间通过消息传递通信,如`send`和`receive`操作。 2. **链接与监控**:进程间可以建立链接,当一个进程崩溃时,链接的进程会收到通知。此外,还可以对进程进行...

    erlang23.2版windows64位.zip

    1. **并行处理**:Erlang的进程模型使得创建轻量级并发进程变得简单,这些进程之间通过消息传递进行通信,极大地提高了系统的并发性和可扩展性。 2. **故障恢复**:Erlang的进程独立性和热代码替换功能使得系统在...

    erlang 连接学习例子

    1. **进程创建**:使用`spawn`函数创建一个新的进程。例如,`ServerPid = spawn(?MODULE, server_loop, [])`,其中`?MODULE`代表当前模块,`server_loop`是进程的主要循环函数,`[]`是传入的参数。 2. **接收消息**...

    erlang9.rar

    Erlang语言的核心特点包括轻量级进程(Erlang中的进程与操作系统进程不同,它们更轻便且能快速切换)、模式匹配、函数式编程和热代码替换等。这些特性使得Erlang在处理高并发场景下表现出色,例如在电信、网络设备和...

    Erlang中文手册

    它以其强大的错误恢复能力、轻量级进程(称为"轻量进程"或"erlang进程")以及对分布式计算的支持而闻名。Erlang的设计目标是创建一种能够在大规模并行系统中高效运行、容错性好且易于维护的语言。 **并发编程** ...

    erlang程序设计相关例子程序

    这个模块可能包含有关进程创建、通信(消息传递)以及错误处理的代码。Erlang进程是轻量级的,可以高效地进行并发执行。 4. **try_test.beam** - 这可能是用于测试异常处理的代码,Erlang使用`try...catch......

    erlang programming

    通过对以上知识点的学习和实践,开发者可以利用Erlang的强大功能来创建高可靠性、高并发的分布式系统。 erlang-book-part1.pdf可能涵盖其中的一些或全部内容,为读者提供全面的Erlang编程指导。

    Erlang深度分析

    理解Erlang进程的创建、销毁和消息传递机制是掌握Erlang并发编程的关键。 ##### 4.2 网络编程 Erlang在构建网络应用方面表现出色,提供了丰富的网络编程接口,如gen_tcp、gen_udp等。同时,Erlang还支持多种网络...

    erlang nif test

    5. **生命周期管理**:Erlang进程可能会多次加载和卸载NIF,因此需要确保在适当的时候释放资源,如在`load`和`unload`回调中。 在“tu”这个文件中,可能包含了测试NIF功能的代码,例如创建一个简单的NIF,用于执行...

Global site tag (gtag.js) - Google Analytics