绕开了锁,请出了进程。费了牛鼻子的劲整出来的 Erlang 究竟可以做点什么呢?看好了:
- 将一个任务的各个环节(针对流程切分)分给不同的进程执行,各干各的都不耽搁,此之为并行。
- 将一个任务的各个环节(将流程切分到多台机器上)分给不同机器上的进程执行,当负载增加时,只需加入新的机器即可满足需要,此之为分布。
- 将某个海量数据的处理任务(针对数据切分)分给多个进程执行,每个进程处理一部分,进程越多效率越高,此之为并发。
- 将某个海量数据的处理任务(将数据切分到多台机器上)分给不同机器上的进程执行,在其中的一部分失效时,整个服务不受影响,此之为容错。
- 上述由多个进程组成的系统,在多核系统上运行,在 CPU 数量增加时,程序执行的性能也同时自动获得增长,此之为多核加速。