Chinaunix首页 | 论坛 | 博客
  • 博客访问: 526494
  • 博文数量: 235
  • 博客积分: 1209
  • 博客等级: 少尉
  • 技术积分: 1417
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-19 19:59
文章分类

全部博文(235)

文章存档

2012年(107)

2011年(128)

分类:

2011-12-29 07:31:42

原文地址:Erlang模块与进程 作者:sudayly

在学习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。
阅读(840) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~