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

测试 erlang:monitor

 
阅读更多

测试代码

 

  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> 


 

0
1
分享到:
评论

相关推荐

    某流水过千W的erlang游戏后端

    10. **代码复用与模块化**:Erlang的模块化设计鼓励代码重用,使得游戏后端的各个组件可以独立开发和测试,提高了开发效率和代码质量。 综上所述,这个千W流水的Erlang游戏后端项目展示了如何利用Erlang的优势来...

    Erlang:并行计算和云计算

    **Erlang: 并行计算与云计算** Erlang是一种动态类型的函数式编程语言,由爱立信在1986年为电话交换系统设计,后来因其在处理并发、分布式和容错性上的优秀特性,逐渐在并行计算和云计算领域崭露头角。 ### 1. ...

    erlang-23.2.1-1.el7.x86-64.rpm

    Erlang:RabbitMQ 是用 Erlang 编写的,因此需要 Erlang 运行时。确保安装了兼容的 Erlang 版本;Erlang:RabbitMQ 是用 Erlang 编写的,因此需要 Erlang 运行时。确保安装了兼容的 Erlang 版本;Erlang:RabbitMQ ...

    erlang节点连通测试

    在Erlang中,你可以使用`erlang:monitor_node/2`和`erlang:demonitor/1`函数来监控和取消监控其他节点的状态。当需要两个未连通的节点C和D进行通信时,可以在节点C上执行: ```erlang erlang:monitor_node(node(d),...

    Introducing Erlang: Getting Started in Functional Programming

    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:Erlang_OTP_19_win64

    Erlang OTP 19_win64是一款专为Windows 64位系统设计的Erlang软件开发工具包,它包含Erlang编程语言和OTP(Open Telecom Platform)框架。Erlang是一种强大的、动态类型的函数式编程语言,特别适合构建高可用性、...

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

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

    erlang programming

    Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在“erlang programming”这个主题下,我们可以深入探讨以下几个关键知识点: 1. **Erlang语言基础**:Erlang是瑞典...

    win64_erlang24.2.2

    win64位系统 。 erlang24.2.2。

    Centos7安装RabbitMQ的文档和安装包(包含erlang安装包).rar

    RabbitMQ基于Erlang编程语言,因此在安装RabbitMQ之前,我们需要先安装Erlang环境。本文将涵盖以下几个关键知识点: 1. **Erlang安装**: Erlang是RabbitMQ的基础,因为RabbitMQ是用Erlang编写的。首先,我们需要...

    erlang19安装包

    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的timer和实现机制

    Erlang是一种面向并发的、动态类型的编程语言,尤其在分布式系统和实时系统中表现出色。在Erlang中,`timer`模块是用于处理定时任务的关键组件,它提供了多种功能,使得开发者能够轻松地创建延时操作或者周期性任务...

    Erlang_win64_19.1和rabbitMQ综合安装包

    Erlang和RabbitMQ是两个在分布式系统和消息队列领域中至关重要的技术。Erlang是一种函数式编程语言,特别设计用于构建高可用性、容错性强和并发性能优秀的系统。RabbitMQ则是基于Erlang构建的一款开源消息代理,它...

    docker-erlang:Erlang 的 Docker 镜像打包

    Erlang 的 Docker 镜像打包#它是什么? 包括码头工人集装箱图像 ,与沿和构建和发布工具。 Erlang/OTP 的最新版本以标签的形式提供。 #我可以用来做什么? 使用它来试用 erlang shell,作为 erlang 开发环境,或将...

    programming_erlang:章节练习和笔记

    编程 Erlang:并发世界的软件(练习) 这是我完成的练习集。 我所做的每一章都在一个单独的目录中,例如chapter_1等。我还计划将我在每章中沿途捡起的markdown格式的笔记放在一起。 最终将在本自述文件中找到更重要...

    awesome-erlang:精选的Erlang库,资源和闪亮内容的精选列表

    - ** Rebar3**:Erlang的构建工具,用于编译、测试和打包Erlang项目。 2. **学习资源**: - ** 官方文档**:Erlang/OTP的官方文档提供了全面的语言特性和库的介绍,是学习的基础。 - ** Learn You Some Erlang**...

    erlang:二郎课程

    它允许开发者即时运行代码、测试表达式和查看数据结构。 ### 9. BEAM虚拟机 Erlang运行在BEAM虚拟机上,这个虚拟机专为并发和实时性优化,提供了高效的垃圾回收机制。 ### 10. 应用领域 Erlang因其独特的特性,...

    meta-erlang:支持Erlang和Elixir

    OpenEmbedded / Yocto Project层,用于Erlang和Elixir支持 此层提供对与和/或构建系统一起使用的和支持: 文献资料 请参阅。 依存关系 该层取决于: URI:git://git.openembedded.org/bitbake分支:主 URI:git:...

    mongodb-erlang:Erlang的MongoDB驱动程序

    MongoDB是目前非常流行的一款开源、高性能、无模式的文档型数据库,而Erlang则是一种并发性极强、容错性出色的编程语言,广泛应用于分布式系统和实时系统。`mongodb-erlang`是一个用于Erlang环境的MongoDB驱动程序,...

Global site tag (gtag.js) - Google Analytics