Erlang has quite different concept of concurrency then other OOP languages. In erlang every thing is process and all the processes have their own stack and GC. and every process is isolated. under the hood erlang uses one thread per core. so with very less OS resources it will get the maximum output. in erlang no sharing concept is there. so no locking , so bit of speed ;).