关于Erlang中的behaviour】的更多相关文章

唔,听说过这四个牛逼渣渣的behaviour:gen_server,gen_fsm,gen_event,supervisor.所以也就更加好奇behaviour的实现. 在解释它是怎么工作的之前,我们可以先看一个具体的实现.这可能会帮助我们理解. 我们先定义一个behaviour:   -module(my_behaviour). -export([behaviour_info/1]). -export([start/1, stop/0]). behaviour_info(callbacks)…
原始链接:https://blog.zhustec.me/posts/erlang-otp-1-callback-based-on-behaviour OTP 是什么 OTP 的全称是开源电信平台 (Open Telecom Platform),但是它的实际作用却不像它的名字一样只是用做电信平台,它是 Erlang 中的一套用于方便用户编写高容错性系统的框架.如果说 Erlang 的伟大之处一半来自于它的并发和分布式,那么另一半就来自于 OTP 框架. 为什么需要 OTP 在编写 Erlang…
erlang中错误大体分为四种: 1. 编译错误    2. 逻辑错误    3. 运行时错误    4. 用户代码生成的错误 编译错误,主要是编译器检测出的代码语法错误 逻辑错误,是指程序没有完成预期的工作,属于开发人员的问题 运行时错误,是指erlang运行时抛出的错误,比如对非数据类型执行算术运算,erlang运行时会捕获异常,并抛出.在erlang中,这类异常的类型为error 用户自定义错误,是指通过exit/1或者throw/1生成 我们把运行时错误以及用户抛出的错误称为异常(exc…
Erlang的原子(atom)在匹配中有着重要作用,它兼顾了可读性和运行效率. 通过atom,可以实现很多灵活高效的应用. atom可以看作是给字符串生成了一个ID,内部使用的是ID值,必要时可以取出它的内容(字符串),例如用于打印输出. atom 的 Eterm 除去 6 位的标签之外剩下的部分,就是 atom 在 Erlang 虚拟机中的索引,也就是一个整数值.在 Erlang 中,有关 atom 比较的操作只需要比较两个索引值即可,就是整数操作,因此非常高效.atom 本身是一个字符串,那…
一. erlang中的错误 1. 分类 1) 编译错误:主要是编译器检测出的代码语法错误: 2) 逻辑错误:是指程序没有完成预期的工作,属于开发人员的问题: 3) 运行时错误:是指erlang运行时抛出的错误,比如对非数据类型执行算术运算,erlang运行时会捕获异常,并抛出.在erlang中,这类异常的类型为error: 4) 用户代码生成的错误:是指通过exit/1或者throw/1生成. 2. 异常 我们把运行时错误以及用户抛出的错误称为异常(exception),他们具有三种类型:thr…
转自: http://www.kongqingquan.com/archives/208#more-208 Erlang中的atom由通用hash表实现,虚拟机中atom最终的用数值表示,对应表中的下标值.本文通过list_to_atom函数的实现,分析atom在虚拟机中的内部实现.先看atom的数据结构: $OTP/erts/emulator/beam/atom.h typedef struct atom { IndexSlot slot; /* 必须放到结构体顶部,通用hash表时用到!!!…
转自: http://www.cnblogs.com/zhengsyao/p/3424539.html 在 Erlang 中,使用 atom 既方便又高效,我们就来看看 atom 是怎么实现的.atom 的 Eterm 除去 6 位的标签之外剩下的部分,就是 atom 在 Erlang 虚拟机中的索引,也就是一个整数值.在 Erlang 中,有关 atom 比较的操作只需要比较两个索引值即可,就是整数操作,因此非常高效.atom 本身是一个字符串,那么 atom 的索引是怎样对应上具体的字符串的…
现在我们看看UDP协议(User Datagram Protocol,用户数据报协议).使用UDP,互联网上的机器之间可以互相发送小段的数据,叫做数据报.UDP数据报是不可靠的,这意味着如果客户端发送一系列的UDP数据报到服务器,收到的数据报顺序可能是错误的.不过收到的数据报肯定是正确的.大的数据报会被分为多个小的分片,IP协议负责重新组装这些分片,并最终交付给应用. UDP是无连接的协议,这意味着客户端无需连接服务器即可发送消息.这也意味着程序更加适于大量客户端收发小的消息报文. 在Erlan…
转自:http://www.thinksaas.cn/group/topic/244329/ 功能说明: erlang中对各种语言的编码支持不足,此代码是使用erlang驱动了著名的iconv编码库来对字符进行编码转换处理. 文件说明: iconv_erl.c和iconv.h 是erlang字符编码模块的driver,作用是对iconv进行封装.编译后生成iconv_erl.dll,供iconv.erl使用. iconv_makefile.win32 windows上编译iconv_erl.dl…
http://blog.sina.com.cn/s/blog_96b8a1540101317g.html 一.基本概念 在Erlang中,通过两个概念管理错误事情:事件管理器(event manager)和事件处理句柄(event handles).通常各种错误.警告和消息事件都会有Erlang运行时系统发送给事件管理器.在Erlang中,默认的事情管理器为error logger,其进程名注册为error_logger.默认情况下error_logger把这些事件直接输出到控制台上. 在系统启…