随笔分类 -  Erlang

摘要:进入Erlang的世界 作为程序员,我们曾经闻听很多“业界动态”,“技术革新”,曾经接触很多“高手箴言”,“权威推荐”。这些正确与否,都已成过去! 现在,让我们迎接Erlang盛宴! 经历 2007年11月在koders.com搜索代码时,发现*.erl格式的源文件,感叹开发语言的花样百出,此时,我 阅读全文
posted @ 2016-07-09 00:56 Shay_黄 阅读(402) 评论(0) 推荐(0)
摘要:Erlang数据类型很少,很容易掌握: 一、数值类型(整数和浮点数) 1、整数 整数大小事没有限制的,较小的整数会被存放在单个机器字长内,较大的整数会自动按需分配内存。所以根本就不存在溢出的问题。 示例: 101 -101 1234567890 * 987654321 * 999999999 另外, 阅读全文
posted @ 2016-07-08 17:40 Shay_黄 阅读(1462) 评论(0) 推荐(0)
摘要:第一章 批处理基础第一节 常用批处理内部命令简介批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令统称批处理命令。小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程。了解了大概意思后,我们正式开始学习.先看 阅读全文
posted @ 2016-05-03 18:29 Shay_黄 阅读(689) 评论(0) 推荐(0)
摘要:在目前网络上许多的Erlang基础教程中都提到类似下面的一个例子:-module(tut).-export([double/1]).double(X) ->    2 * X.然后在Erlang Shell中进行编译tut.erl源文件:1> c(tut).    但对于一个刚刚接触到Erlang的 阅读全文
posted @ 2016-03-15 11:21 Shay_黄 阅读(1907) 评论(0) 推荐(0)
摘要:erlang中构建自己的app是非常方便的,可以自己定制app,不过这里只是简单记录下erlang下典型的做法。即是构建otp application。。构建定制一个application可以通过xxx.app文件,可以把app文件放到config文件夹里面eg:config/gs.app首先来看下 阅读全文
posted @ 2016-02-18 18:17 Shay_黄 阅读(1466) 评论(0) 推荐(0)
摘要:在开发过程中,有两个概念是和地区区域相关的:字符编码和时间;编码和时间的规范演变过程中有文化的冲突有历史的遗留,是软件开发中充满人文气息的一角;关于字符编码我之前整理过一篇文章,[Erlang 0024]Erlang二进制数据处理这部分知识很有意思,特别是格列佛游记所引出的大端小端概念,妙趣横生;... 阅读全文
posted @ 2016-01-14 15:21 Shay_黄 阅读(948) 评论(0) 推荐(0)
摘要:今天细致的看了下supervisor,现在做个总结:其中,方块代表supervisor process,它的功能很简单,就负责看管它下面的“小弟”(child processes) 并且在必要的时候对某个child process执行restart或者terminate操作;而圆形就代表worker... 阅读全文
posted @ 2015-12-09 15:56 Shay_黄 阅读(387) 评论(0) 推荐(0)
摘要:说完了gen_server,今天我们来看看gen_event。通常我们会有这么一种需求场景:采集客户端发送的事件,并做相应的处理,如下图:EventServer负责接收客户端发送的事件消息,当它接受到一个事件消息后,它回调所有的EventHandler处理这条信息(不同的EventHandler对同... 阅读全文
posted @ 2015-12-09 15:55 Shay_黄 阅读(566) 评论(0) 推荐(1)
摘要:在《Programming Erlang》的OTP introduction章节中,作者通过循序渐进的方式,向我们展示了gen_server设计思路,现在做下总结:在具体看gen_server之前,我们先看一个server通用框架:在这个server里,你几乎看不到任何和具体功能相关的东西,它只提供... 阅读全文
posted @ 2015-12-09 15:53 Shay_黄 阅读(609) 评论(0) 推荐(1)
摘要:我们写完一组功能模块后(在erlang中,以module为单位),总是希望这一组模块,可以打包成一个应用,作为一个单独的整个,可以启动,停止,象mnesia一样。并可以在其它应用中引用。如何来做到这一点呢。每一个应用都是通过application:start系列函数来启动,application:s... 阅读全文
posted @ 2015-11-26 10:14 Shay_黄 阅读(1452) 评论(0) 推荐(0)
摘要:erlang中为我们提供了这样一个服务器的现成的实现,就是gen_server,不用自己去编写服务器程序了。所要做的就是以下几个事:1.确定我们回调模块的名称2.编写接口函数3.实现六个回调方法也就是说我们只需要关注于回调模块的实现就OK了。1: -module(XXXX) 定义模块名称2:接口函数... 阅读全文
posted @ 2015-09-09 16:34 Shay_黄 阅读(1544) 评论(0) 推荐(0)
摘要:在Erlang内部只有两种混合的数据类型:List和Tuple,而这两种都不支持命名访问,所以如果没有额外的库的话想创建像PHP、Ruby或Python中的关联数组(Ruby中的Hash)是不可能的在Ruby中我可以这样做:server_opts={:port=>8080,:ip=>'127.0.0... 阅读全文
posted @ 2015-09-08 14:28 Shay_黄 阅读(672) 评论(0) 推荐(0)
摘要:1. 并发原语:(1) Pid = spawn(Fun) %% 创建一个新的并发进程,用于对Fun求值。(2) Pid ! Message %% !是发送操作符,消息发送是异步的,返回结果是消息本身,所以Pid1!Pid2!...!M可以向多个进程发送消息M。(3) receive ... end ... 阅读全文
posted @ 2015-09-07 16:17 Shay_黄 阅读(431) 评论(0) 推荐(0)
摘要:1.process_flag(trap_exit,false),是默认行为:“A进程”和“B进程”相互链接,(1)如果“A进程”异常退出“B进程”也随之退出;(2)如果“A进程”正常退出,“B进程”不做任何处理,继续运行。2.process_flag(trap_exit,true):“A进程”和“B... 阅读全文
posted @ 2015-09-07 11:43 Shay_黄 阅读(544) 评论(0) 推荐(0)
摘要:1)算术运算符 +:加 -:减 *:乘 /:除(结果为float类型) div:整除 rem:整除取余 注意最后的结果都是二进制 band是按位与运算 2#10band2#110. 》》 2 bor是按位或运算 3#10bor2#100. 》》 7 3#10先转为2... 阅读全文
posted @ 2015-09-06 11:21 Shay_黄 阅读(4069) 评论(0) 推荐(1)