erlang
天天爆零
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Erlang随手记之遍历列表
在其他语言中有for循环,但erlang有点捞,今天学习到了用递归和模式匹配的方法来遍历一个列表,下面给出例子。 -module(hello).-export([cost/1]).cost(orange) -> 5;cost(apple) -> 4;cost(milk) -> 3.-module(fuck).-export([tota...原创 2019-05-31 17:54:52 · 1423 阅读 · 0 评论 -
Erlang之supervisor入门
1.概念: supervisor是OTP框架四大行为之一,它用于监视别的进程,当一个进程崩溃是,它能够快速重启该进程,并根据不同的策略做出不同的行为。2.常用函数:1.start_link({local/global,NAME}, MODULE, Args). 创建一个supervisor的进程服务器,local为本地进程,global为全局进程,NAME为该进程名,...原创 2019-06-22 00:51:48 · 1272 阅读 · 0 评论 -
Erlang之TCP入门样例
首先创建socket_example.erl:-module(socket_example).-compile(export_all).nano_get_url() -> nano_get_url("www.baidu.com").nano_get_url(Host) -> {ok,Socket} = gen_tcp:connect(Host, 80, [binar...原创 2019-06-12 10:28:20 · 378 阅读 · 0 评论 -
erlang之文件基本操作
1.读取文件: 创建test.dat文件:{person,woman,{'12323','121212'},abc}.{tttt}. 1.第一种方式全部读取: 默认读取的是erlang里的数据类型,如读取成功,则返回{ok,Text},否则返回{error,Why}. 2.第二种方式分次读取:3.按行读取:...原创 2019-06-12 09:05:01 · 1022 阅读 · 0 评论 -
Erlang之Mnesia简单入门
1.什么是Mnesia? Mnesia在我理解里面就是一种数据库,是Erlang自带的,它支持事务,这是最重要的事务就是要么做,要么全都不做,而且事务有几个重要的概念我们需要了解,因为只有我们知道事务有什么性质,才知道什么场景该用到事务,什么场景不需要。2.事务几个重要概念 1.原子性(Atomicity)——每个事务都是一个不可分割的单元,要么整体成功,要么整体失...原创 2019-06-16 22:50:27 · 3746 阅读 · 0 评论 -
Erlang之gen_event基础入门
1.概念: gen_event是OTP四大行为之一,是一种对事件的抽象,也是基于匹配回调的模式,它比gen_server更加灵活,因为它可以随意添加回调模块,而且它不会因为无法匹配而崩溃,它会把它丢给terminate,直接输出,但因为他会遍历每个回调模块,所以它的时间复杂度肯定会比gen_server更高。2.基本函数:1.start() -> Result ...原创 2019-06-20 23:21:40 · 1102 阅读 · 0 评论 -
erlang之分布式编程入门
首先给出服务器基本代码:-module(server1).-compile(export_all).loop() -> receive {From,{store,Key,Value}} -> put(Key, {ok, Value}), From ! {server1,true}, loop(); {From,{ge,Key}} -> ...原创 2019-06-10 22:15:47 · 448 阅读 · 0 评论 -
erlang之link
概念: link字面来说就是连接的意思,语法link(Pid),连接成功返回true,失败false,他的作用是在同一个连接组中,若其中一个进程死亡,那么进程组内的进程都死亡。为什么有: 我们来试想一下一个例子,我们有一个业务需要几个进程协作完成,缺一不可,若因为物理或者其他的原因有其中一个进程死掉了,那么我们现在肯定想其他进...原创 2019-06-09 21:05:15 · 436 阅读 · 0 评论 -
Erlang之消息发送
-module(message).-export([area/0]).area() -> receive {From,{H,W}} -> From ! {H*W} end.这里我们很简单的创建了一个模版,很简单,接收一个消息{哪里来,{高,宽}},然后返回面积.。1.Pid ! {Message} :发送消息Message给进程Id为Pid的进程。...原创 2019-06-09 16:18:58 · 582 阅读 · 0 评论 -
Erlang之ETS,DETS入门
1.什么是ETS,DETS? 是一种用于存储存储元组的系统模块,erl自带的,在理论上来说他们可以存储无限数据,只要你有足够的存储空间,那ets和dets有什么不同呢,ets用的是内存存储,dsets用的是磁盘存储,前者的存取速度更快,但是它并不能长期存储,意思是只要erl程序一结束,它所存的数据就会丢弃,但ets却不会,若重启后,会检查一致性,若发现有误,会尝试性修复。2.ET...原创 2019-06-14 12:46:16 · 1621 阅读 · 0 评论 -
Erlang OTP之gen_server入门
1.概念 gen_server是对一种服务器开发模式的抽象,在我们日常开发中,其实有很多行为都是重复的,例如我们会用一个loop()来不断使服务器进入一种处于等待,处理信息,返回结果,等待的状态。其实这些工作都是重复的,而一个行为就是把我们这些重复的工作都抽象出来,简化工作。2.函数介绍我们常用的函数有以下几个:1.start() -> gen_server:sta...原创 2019-06-19 01:05:16 · 563 阅读 · 0 评论 -
Erlang之实现UDP乘介服务器
udp_example.erl:-module(udp_example).-compile(export_all).start_server() -> spawn(fun() -> server(4000) end).server(Port) -> {ok, Socket} = gen_udp:open(Port, [binary]), io:format(...原创 2019-06-13 17:05:48 · 239 阅读 · 0 评论 -
Erlang之一个简单的TCP服务器
简单TCP服务器代码:-module(my_socket_server).-export([start/0,loop/1]).start() -> {ok, Listen} = gen_tcp:listen(2345, [binary, {packet, 4},%自定义打包规则,生成一个监听2345端口的socket {reuseaddr, true},...原创 2019-06-12 18:05:33 · 566 阅读 · 2 评论 -
erlang之实现简单的提醒记事本
文件evserv2.erl-module(evserv2).-compile(export_all).-record(state,{events,clients}).-record(event,{name="",description="",pid,timeout}).init() -> loop(#state{events = orddict:new(), clients ...原创 2019-06-05 23:41:56 · 196 阅读 · 0 评论 -
Erlang之简便聊天室
my_tcp.erl-module(my_tcp).-compile(export_all).start_server() -> ets:new(my_ets,[ordered_set, public, named_table, {write_concurrency, true}, {read_concurrency, true}]),%初始化一个表 case gen_tcp...原创 2019-06-23 00:41:02 · 569 阅读 · 0 评论
分享