I've got very limited knowledge about Erlang, but as far as I understand, it can spawn "processes" with a very low cost.
So I wonder, what are those "processes" behind the scenes?
Are they Fibers? Threads? Continuations?
I've got very limited knowledge about Erlang, but as far as I understand, it can spawn "processes" with a very low cost.
So I wonder, what are those "processes" behind the scenes?
Are they Fibers? Threads? Continuations?
They are Lightweight Processes.
Also see my question Technically why is processes in Erlang more efficient than OS threads.
Also, from the Erlang doc:
Erlang processes are light-weight (grow and shrink dynamically) with small memory footprint, fast to create and terminate and the scheduling overhead is low.
Source: http://www.erlang.org/doc/reference_manual/processes.html
You might also want to have a look to this:
http://www.defmacro.org/ramblings/concurrency.html
When talking about Erlang processes, it says:
Erlang processes are lightweight threads. They're very cheap to start up and destroy and are very fast to switch between because under the hood they're simply functions. A typical Erlang system running on a modern desktop computer can switch between many tens of thousands such processes. Processes are switched every couple of dozen function calls which makes switches less granular but saves a tremendous amount of time normally wasted on context switching.