- 博客(20)
- 收藏
- 关注
原创 [Erlang] - gen_event
一般来说,gen_event的实现模块大都没有start_link()函数,一般情况下,直接有监督者启动的都是gen_event容器(事件管理器),而不是gen_event的实现模块。
2024-04-23 16:36:13
231
原创 [Erlang] - EPMD
游戏服和大区服(也有的叫网关服的)短暂断连并短时间内又再次链接。1.大区服服务器网络问题(同事同时间没出现问题,pass)。2.配置问题引发(是能正常连接的,pass)。3.游戏服网络问题(就是它!
2024-04-18 20:21:57
584
2
原创 Erlang和Java对比
Erlang 有原生支持网络编程和建立分布式应用程序的能力,这些都使 Erlang 成为开发大规模应用的理想语言。由于 Erlang 中的进程被设计为相互独立的容器,所以在 Erlang 中进行并发编程通常比使用共享状态的线程库更容易。Erlang 的高可用性来自于其内置的错误处理机制。另外,Erlang 的错误日志非常详细,对于跨进程或跨网络通信的问题有很好的支持。总之,Erlang 能够提供高性能、高并发、高可靠性和热代码升级等优点,这使得 Erlang 成为一种适用于实时和分布式系统的编程语言。
2024-04-17 19:34:26
492
1
原创 Erlang atom
atom不参与垃圾回收,一旦创建就不会被移除掉,一旦超出atom的数量限制(默认是1048576) VM就会终止掉.对于一个会持续运行很久的系统,把任意字符串转成atom是很危险的,内存会慢慢被吃光.如果使用的原子是在预期范围内的,比如协议模块的名称,那么可以使用list_to_existing_atom来进行防范,这个方法把一个文本形式的字符列表转为一个已经存在原子 atom,如果原子 atom 不存在,则返回一个 badarg 的错误。在shell中看一下atom的使用情况。
2024-04-15 21:02:55
346
1
原创 [Erlang 002] -Application构建
又预感到可能是文件位置导致的启动失败,但是网上大家都是用的application:start()去启动,后面发现因为beam在ebin目录下,正确的启动erl进程的命令应该是 erl -pa ebin。控制台输入启动test。
2024-03-25 15:10:16
299
1
原创 [Erlang] - gen_fsm
gen_fsm(有限状态机)描述了这样的一组关系:State(S) x Event(E) -> Actions(A),State(S’)这个关系意味着:如果在S状态下发生事件E,将执行动作A并返回状态S’.
2024-02-22 16:47:54
422
1
原创 [Erlang] - gen_server
gen_server.erl (上面的spawn经过fun的传来传去最后会来到gen_server)proc_lib.erl是一个关于进程的工具类,提供了同步启动进程的机制。
2024-02-22 16:46:14
678
1
原创 [Erlang] - 数据存储选择
跨进程读写的数据,比较全局性的,最好用ets。但ets不能用得太多,有数量限制的。(缺省情况下最多1400个,可以通过环境变量ERL_MAX_ETS_TABLES进行修改)定义进程数据结构的,比较稳定的,用State;进程内经常读写的数据,最好用进程字典,快;
2024-02-21 20:07:56
225
1
原创 [Erlang] - 运算符
:=用来测试两个数据类型是否完全相同。X andalso Y: 如果X为true,则会执行Y,如果X为false,则不会计算Y,直接false。X orelse Y, 如果X为true,则结果为true,不会计算Y。X =:= Y:比较X、Y的值和数据类型是否完全相同。X =/= Y:比较X、Y的值和数据类型是否完全不同。X == Y:比较X、Y的值是否相同。X /= Y:比较X、Y的值是否不同。X =< Y:X等于或小于Y。X >= Y:X大于或等于Y。X < Y :X小于Y。X > Y:X大于Y。
2023-10-24 17:00:35
1385
1
原创 [Erlang] - lists
列表 List 里的每一个元素按从左向右的顺序,依次跟一个累积器(accumulator)参数 Acc0 作为 Fun 的参数被调用执行,并返回一个新的累积器 Acc1 跟列表的下一个元素调用,直到调用完列表里的所有元素,最终返回累积器 Acc 的结果值。列表 List1 里的每一个元素以参数的方式被断言函数 Predicate 调用,如果该元素在断言函数 Predicate 执行中返回的是 true,那么则留下,否则被丢弃,最终返回一个符合断言条件的元素的列表。获取列表中指定位置的元素。
2023-10-23 19:45:37
1377
1
原创 nutzDao常用注释汇总
汇总一下最近用到的nutzDao的相关注释类上方:@Table(“XXX”) 表名@PK({“id”, “dateTime”}) 联合主键@TableIndexes({@Index(name=“dateTime”, fields={“dateTime”}, unique=false),@Index(name=“id”, fields={“id”}, unique=false)}) 表索引设置@TableMeta("{mysql-charset:‘utf8mb4’}") 表字符设置
2022-03-17 11:44:12
398
原创 遇到的面试题们(一)
最近遇到的面试题(一)1、输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。方法一(推荐-两次反转): String str = "I am a student."; List<String> strList = Lists.newArrayList(str.split(" ")); Co
2022-03-17 11:19:24
81
原创 《MySQL必知必会》知识总结一
重新学习数据库,跟随着《MySQL必知必会》这本书的脚步一起进行深入的了解。数据库基础知识数据库(database):保存有组织的数据的容器。表(table):某种特定的数据类型的结构化清单。表名具有唯一性(同一个数据库不能有相同的表名,但在不同的数据库中可以出现两个相同的表名)。模式(schema):描述关于数据库或者表的布局或特性的信息。列(column):表中的一...
2018-12-17 10:49:52
155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人