Chinaunix首页 | 论坛 | 博客
  • 博客访问: 99986
  • 博文数量: 18
  • 博客积分: 681
  • 博客等级: 中士
  • 技术积分: 295
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-17 13:33
文章分类
文章存档

2012年(8)

2011年(10)

分类: Python/Ruby

2011-12-27 19:26:13

在学习Erlang的过程中,对模块与进程的关系比较模糊,下面对其做个总结。从大的方面来说,进程是程序运行时的概念,而模块是开发中的概念,两者会有怎样的联系呢?从静态代码来看,Erlang程序由模块(.erl)构成,每个模块完成一定的功能?而从运行时环境来看,Erlang程序实际上是运行在Erlang虚拟机上N个进程的运行和交互过程。

Erlang模块,同其它语言一样,可以分成接口和实现。接口,从广义上来说,定义了某个模块的使用方式,实现即是这个模块的内部结构过程等。在Erlang中,接口通常使用客户函数(Client Functions)的形式提供,模块间的通信通常使用消息发送的方式,客户函数封装了这种消息发送接收机制,使得使用Erlang模块非常简单,就是个函数调用。


上图表达了Erlang模块与进程间的关系,server.erl定义了一个模块,后台的实现有进程s1、s2、s3、s4和supervisor,其中supervisor是监控进程。而client.erl为客户模块,在xxx函数中使用到了server,其本身实现有3个进程c1、c2和c3。
阅读(2907) | 评论(1) | 转发(1) |
0

上一篇:用Erlang实现一个计数器

下一篇:类型

给主人留下些什么吧!~~

十七岁的回忆2011-12-29 07:33:01

进程是程序运行时的概念,而模块是开发中的概念