ERTS
Erlang运行时系统,由C语言编写,负责底层逻辑,通过它可以与文件系统交通,并且可以处理内存,实现erlang进程.
三个重要方面:
1)调度器:
<1>由于有对称多处理器(SMP)支持,erlang运行时系统可以在内部使用不止一个进程调度器,每个占用一个独立的操作系统线程.
<2>Erlang进程可以以n:m的方式映射到操作系统进程,每个调度器处理一个进程池,并可以实现进程分配上的负载均衡.
2)IO:
<1>erlang以事件驱动的方式处理所有I/O,当数据进出系统时,程序可以以非阻塞方式完成数据处理,降低了连接建立和断开的频次,避免了OS层面上的加锁和上下文切换.
3)进程隔离与垃圾回收器
<1>erlang实现了自动垃圾回收算法GC算法,无需显式管理调用.
Shell函数
当想停止当前正在运行的shell命令时,可以使用Ctrl + G 停止当前任务,会返回
%Ctrl + G
User switch command
-- >
j %j命令可以打印出当前的运行的shell任务,*号表示为当前默认任务
1 *{shell,start,[init]}
-- >
s %s命令可以启动一个新的shell任务,且*号自动转移到新任务上
1 {shell,start,[init]}
2 *{shell,start,[]}
-- >
c %c命令可以连接到当前任务上
Eshell V7.3 (abort with ^G)
项元比较
相等比较=:= 与 == 的区别:
=:= 是完全相等比较,仅当两侧完全等同时才返回true,例如 2 =:= 2 -> true ; 2 =: