Erlang 面试和笔试题

  1. Erlang 的查看内存的几种方式?
    https://blog.csdn.net/erlib/article/details/8914959
  2. 是否了解smp? 有smp支持的erlang?
    smp(Symmetric multiprocessing): 使用操作系统线程实现多个调度器,利用多核多CPU的优势,可以把实现的细节对开发者隐藏起来,可以不用修改代码,甚至不用重新编译就可以使用,可以有非常灵活的启动选择和运行时调整。
    有 smp支持的erlang vm 有1 - 1024个scheduler每个Scheduler运行于一个独立的操作系统线程,操作系统决定它是否要在不同的核上面运行。由于多个Scheduler从同一个公共运行队列中去除需要运行的erlang进程和IO任务,所以对共享数据进行锁保护
  3. ETS 和DETS的区别?
    ETS是存储在内存的。数据是临时的,效率高
    DETS是存储在磁盘的。数据是持久的。所以效率低
  4. ETS表类型set、ordered_set、bag、duplicate_bag的各个底层实现算法?
    ets表的底层是由哈希表实现的,不过ordered_set例外,它是由平衡二叉树实现的
  5. 进程和线程的区别?
    地址空间:多个线程同属于一个进程,它们的共享该进程的地址空间,而各个进程之间是独立的地址空间。
    资源拥有:同理,各个进程之间的资源是独立的,而同一个进程的线程共享本进程的资源比如内存,I/O,cpu等。
    执行过程:每一个独立的进程都有自己的程序入口,独立运行,但是线程不能独立运行,必须依赖应用程序,
    线程是处理器调度的基本单位,进程和线程都可以并发执行。
    线程执行开销小,不利于资源的管理和保护,线程一般在smp 机器上运行。
    进程执行开销大,可以很好的进行资源的管理和保护,进程可以跨机器前移
  6. 递归和尾递归的区别?
    递归: 不断调用自身函数,直到遇见结束条件。
    函数调用自身,称为递归。如果尾调用自身,就称为尾递归
    递归时如果N足够大,可能造成栈溢出,但是两种递归各有优势,当Sum的数据很复杂,尾递归效率就会受到限制,总之具体情况,选择合适的递归。
  7. tuple 和 list的区别,为什么有list了,还要tuple?
    erlang有两种复合结构,tuple和list,两者的区别是tuple子元素的个数是固定不变的,声明后就不能改变了;而list是可变的,可以通过[H|T]来取出或插入新元素
  8. 洗牌算法?
-module(shuffle).

-compile(export_all).

shuffle(L) when is_list(L)->
	Shuffle(list_to_tuple(L), length(L)).
	
shuffle(RandT, 0) -> tuple_to_list(RandT).

shuffle(RandT, Len) ->
	Rand = random:uniform(Len),
	LenVal = element(Len, T),
	RandVal = element(Rand, T),
	NewT = setelement(Len, RandT, RandVal),
	NewRandT = setelement(Rand, NewT, LenVal),
	Shutffle(NewRandT, Len - 1).
  1. 一家游戏公司的大部分笔试题: https://blog.csdn.net/joke_king/article/details/78471923
  2. Erlang 实现1到n的质数?
    https://blog.csdn.net/jiefengchen/article/details/52329158
  3. erlang实现斐波那契数列,快速排序?
    斐波那契
-module(fib).
-compile(export_all).

getfib(N, X, Y) when N<3 -> 
	Y; 
getfib(N, X, Y) -> 
	getfib(N-1, Y, X+Y).

快速排序

-module(qsort).
-export([qsort/1]).
 
qsort([]) -> [];
qsort([H | T]) ->
	qsort([X || X <-T, X < H]) ++ [H] ++ qsort([Y || Y <- T, Y >= H]).
  1. 你看过什么开源项目?
    这个有得说就行,比如MQTT,Zeromq等等

猜你喜欢

转载自blog.csdn.net/qq_35200479/article/details/88564664