测试代码
1 -module(testmonitor).
2 -compile(export_all).
13 hello3()->
14 receive
15 {Pid, T} ->
16 io:format("receive....~p~n", [T]),
17 S = integer_to_list(T),
18 io:format("receive.. Pid=~p..s=~p~n", [Pid, S]),
19 Pid ! {integer_to_list, S},
20 hello3()
21 end.
测试结果:
---------------没有使用-- erlang:monitor 当出现转换错误时收到的是timeout----------
39>
39> f(),Pid = spawn(testmonitor, hello3,[]).
<0.85.0>
40> f(F),F = fun() ->f(A), receive A->A after 3000-> timeout end end.
#Fun<erl_eval.20.21881191>
41> Pid ! {self(),a2}, F().
receive....a2
=ERROR REPORT==== 28-Nov-2012::18:55:09 ===
Error in process <0.85.0> with exit value: {badarg,[{erlang,integer_to_list,[a2]},{testmonitor,hello3,0}]}
timeout
42>
42>
42>
-使用-- erlang:monitor 当出现转换错误时收到的是{'DOWN', MonitorRef, Type, Object, Info}----
42>
42> f(),Pid = spawn(testmonitor, hello3,[]).
<0.89.0>
43> f(F),F = fun() ->f(A), receive A->A after 3000-> timeout end end.
#Fun<erl_eval.20.21881191>
44> R=erlang:monitor(process, Pid).
#Ref<0.0.0.255>
45> Pid ! {self(),2}, F().
receive....2
receive.. Pid=<0.59.0>..s="2"
{integer_to_list,"2"}
46> Pid ! {self(),3}, F().
receive....3
receive.. Pid=<0.59.0>..s="3"
{integer_to_list,"3"}
47> Pid ! {self(),a2}, F().
receive....a2
{'DOWN',#Ref<0.0.0.255>,process,<0.89.0>,
{badarg,[{erlang,integer_to_list,[a2]},
{testmonitor,hello3,0}]}}
=ERROR REPORT==== 28-Nov-2012::18:55:46 ===
Error in process <0.89.0> with exit value: {badarg,[{erlang,integer_to_list,[a2]},{testmonitor,hello3,0}]}
48> Pid ! {self(),3}, F().
timeout
49>
分享到:
相关推荐
10. **代码复用与模块化**:Erlang的模块化设计鼓励代码重用,使得游戏后端的各个组件可以独立开发和测试,提高了开发效率和代码质量。 综上所述,这个千W流水的Erlang游戏后端项目展示了如何利用Erlang的优势来...
**Erlang: 并行计算与云计算** Erlang是一种动态类型的函数式编程语言,由爱立信在1986年为电话交换系统设计,后来因其在处理并发、分布式和容错性上的优秀特性,逐渐在并行计算和云计算领域崭露头角。 ### 1. ...
Erlang:RabbitMQ 是用 Erlang 编写的,因此需要 Erlang 运行时。确保安装了兼容的 Erlang 版本;Erlang:RabbitMQ 是用 Erlang 编写的,因此需要 Erlang 运行时。确保安装了兼容的 Erlang 版本;Erlang:RabbitMQ ...
在Erlang中,你可以使用`erlang:monitor_node/2`和`erlang:demonitor/1`函数来监控和取消监控其他节点的状态。当需要两个未连通的节点C和D进行通信时,可以在节点C上执行: ```erlang erlang:monitor_node(node(d),...
Introducing Erlang: Getting Started in Functional Programming by Simon St. Laurent English | 6 Mar. 2017 | ASIN: B06XHSP5SH | 212 Pages | AZW3 | 1.85 MB If you’re new to Erlang, its functional style...
Erlang OTP 19_win64是一款专为Windows 64位系统设计的Erlang软件开发工具包,它包含Erlang编程语言和OTP(Open Telecom Platform)框架。Erlang是一种强大的、动态类型的函数式编程语言,特别适合构建高可用性、...
内容概要:本文档详细介绍了Erlang编程语言及其并行编程模型,并重点阐述了Erlang OTP框架的特性和应用场景。首先,文档简述了Erlang语言的特点,包括轻量级进程、模式匹配和热代码升级等特性,以及它在构建高可用、...
在Erlang编程语言中,进程是其核心特性之一,它们是并发执行的实体,类似于其他语言中的线程。在Erlang中,进程间通信(IPC)是通过消息传递来实现的,而`link`机制是这个通信模型中非常重要的一部分。本教程将通过...
Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在“erlang programming”这个主题下,我们可以深入探讨以下几个关键知识点: 1. **Erlang语言基础**:Erlang是瑞典...
5. **REPL(Read-Eval-Print Loop)**:Erlang shell的使用,它是学习和测试Erlang代码的重要工具。 6. **实际应用案例**:可能包含Erlang在实时系统、网络通信、数据库或Web服务等领域的应用示例。 这两本书结合...
RabbitMQ基于Erlang编程语言,因此在安装RabbitMQ之前,我们需要先安装Erlang环境。本文将涵盖以下几个关键知识点: 1. **Erlang安装**: Erlang是RabbitMQ的基础,因为RabbitMQ是用Erlang编写的。首先,我们需要...
**RabbitMQ 3.9.13与Erlang 24.2 版本详解** RabbitMQ是一款开源的消息代理和队列服务器,它使用AMQP(Advanced Message Queuing Protocol)协议,广泛应用于分布式系统中的消息传递。RabbitMQ 3.9.13是该软件的一...
win64位系统 。 erlang24.2.2。
Erlang/OTP 19.1 is a service release containing mostly bug fixes, as well as a number of new features and characteristics improvements. Some highlights of the release are: erts: Improved dirty ...
Erlang和RabbitMQ是两个在分布式系统和消息队列领域中至关重要的技术。Erlang是一种函数式编程语言,特别设计用于构建高可用性、容错性强和并发性能优秀的系统。RabbitMQ则是基于Erlang构建的一款开源消息代理,它...
Erlang 的 Docker 镜像打包#它是什么? 包括码头工人集装箱图像 ,与沿和构建和发布工具。 Erlang/OTP 的最新版本以标签的形式提供。 #我可以用来做什么? 使用它来试用 erlang shell,作为 erlang 开发环境,或将...
编程 Erlang:并发世界的软件(练习) 这是我完成的练习集。 我所做的每一章都在一个单独的目录中,例如chapter_1等。我还计划将我在每章中沿途捡起的markdown格式的笔记放在一起。 最终将在本自述文件中找到更重要...
- ** Rebar3**:Erlang的构建工具,用于编译、测试和打包Erlang项目。 2. **学习资源**: - ** 官方文档**:Erlang/OTP的官方文档提供了全面的语言特性和库的介绍,是学习的基础。 - ** Learn You Some Erlang**...
它允许开发者即时运行代码、测试表达式和查看数据结构。 ### 9. BEAM虚拟机 Erlang运行在BEAM虚拟机上,这个虚拟机专为并发和实时性优化,提供了高效的垃圾回收机制。 ### 10. 应用领域 Erlang因其独特的特性,...